152757081122748761316522074282691905847645694179465782169766797886225622911524956880633909992028770251911789670125605571318166297583557916634937605923227326342219246238842764279020526690432649623128652013372202303172967255463848499834551765767587798111972065141058502554420400601289239158519872007502318269115068796889188824992921343326446619546497481986439174495312525061943915118102570105149701901145056671383083931722813580198273176712803876131842671922189928956117600540634776784673422013294635676174772761848049240157680526060042228300784316398939165964878135051385015644184067615243682981147999054268142554427817486485318640979534011550463657294607544165066774393545883408271835844701134175004361328379626591280174188130830634757524681348612412135828348184901594188864723820130009223090946296741161844015596756725720662188279617361409487999830398111568424497920909637964618299706813936565517471687272590814196389959541915338317073247259322534602676825981853618195410794884636861954085051121889539977507824376116330551285240779020109340582868310793333044818376946007054877225488437241703692775628997159386272490951499320491031597069473967010122581409500634224783467412329510154046223458451021644780089515082419024116679124218970874032502688649247128386862370134388566456787110252090461282918448329435432971474575138763655889660198475168894323743415551847206233362754946125344797257049340141877064884764308597532024446414619107269582747609628167164391993766337656250267027710317566182092495715547291136408461629056597156566438684841039072423028267729861480908690213385488555652017316770964697080405033819036195314843921766193193388790802669671393915827483776949910339176026877919457016249047474511071490346573689689285066602948223413142778665546983245265372889969666815309518787719671149297589857175409181727574296355537784171325640469392352442983961522782038010227383384622893947254095272103059830681955604524433532882971299915809203074486357894939627532743683663377549622297307219074005532194480384746822133279455478605695194025902146300451356951513359757112103561171236208526395560964581596556898407942188629681710167992395989122394478686592970139779392595307209195533960025136147831912847411580808758869443120028766377724309863824966507705548615419773040043236793557602781168923718468098870320976180837294858208934078387241242449737681010722888993664495810586424055390101688657338277308645004855141056111000815178340568205863301448394202971750989289266599606897252674176491102317704792417055899401489207644495934596026936915329901943058583531514970335574393227694738555778851236341715841086159268549916162852112079687473096730110245756394028030134992973158407805811849966565684267021690101114608055384388258275310554868759060005743673100020441420700655732570224899877083283561685350033373770768983376643480457885734351629691456259972679771617792380564848135676978657802864306413490169071303803942350484314891018549466302523857174745777912353216485330868765732325465497408482545377553790926985820332073424874353030030487568016817796353502827847489283042919819669448991649378431326201369831215442198066648124853758723801093212073704734001746035744371680753379495008395263481623206912984432814063308268366310984474478049356718068951486350800246653612637639153162240414529375163846942574587156173823344233204351711565680519475931215352792210235232126723149156922335400703168662709843743066576325474088390103291033698919957619533847713943938010531876173041591009522121558013329609268921290270462737661482311207368873991093777863233593690050928204093572493614176718207756610953024077548061140451600677180824230784563128138425869029466816101898213758109436894265226817454665384194269804562790806361876225086134111534655628646360912872109671744424929876904441956721538739769342691170234563071996847442131245030058880186580750085086192725974240469214370276998883492164080880444757015622115058564221000630786672441931728360009796786467187026517509135530457407751538959021366135706810303788195480668845324229900409874959282056157099913439184737521641643048233530940926141325404255077965726723837650510815573542283480820948882197795311856240377582088070139436526051190575507019863087473414876470702547276620828045818164489913828753871514873190205834210116508303943595027700362284599871311615306120135119862370058718091713855157849583092783429199607633788155330002906563976498228831497041827922847511503228763492956938339834733267066696025141788342208360907173368025636240405780341241850504831050726991249699411964329549889291560007023907458415411349890533534850940982140120320690523754435959248290936257356399807000340183482537461734565680049660575385861325298093204331269489303982804448181262719791194544140484165128069778758132407646750182269608684494630308810183149975054110643059180652189209207183625586701074706679971638268778375899173465092184315244008313267999846615130759796134183363468279425355035036073262095845053059042500903154529193339550136041019595056766517816023514089302345443080095152861723430909959043811473758424771933355611037764520116771686711488204961915749669201587107069871713191385547654574998081180279778665933080820192757861424784866318365094146047661620512577868845817015228482466662284119078822104488346726166459309121621175975484504364104183286337490656048091774738132993885586236893742488757839072664436903758977703691204383915737949323439489305273198468604610859995575388800181673652969239981147280446399284742504638775212936730709978526093125118956138175609958016147443916571064703268848437203817736064750014091452104139232005485439551442294605576448439653370322181525608962758287936480429018878469340432187917918231371093008755264269064160853895131831446455842427296031769808539861118684060338011273095016647678976015382397503543153993646178611905444398165159634427146262359727549096923599423157358778842074676490791988904518818623437268967574316745276340956061569287495876376226252867348632840795501396581200764057285630028484686613315311128013965343762376390277404898196253543300603493396272475006780905237229480123816090084347518975844827732206813748662499860491938685418634919719417955248240792275507722395573694574491807087935535407531931374438040506968783382246864885530292040869630442707250003009329009643513839007880300619731042634849773151269235590684829142159295967563956175753195397406512972575611292669652271307554923985161698578176016063708459093590418037260679676275428452598147384871736914822740751474831082341303802211293567383576553224758343212783598808790105379273124004262243497819254742348799385694588856763393332120548750918299768201834767672649399199029352761820567054440340650419011994907929329810613252235304204602890658014779245288806310457857036230046293624504830523208365823184050655534584155047174946528255173799475583673024890020429171830568006107048123436514463550682955613247448621331451245812069368688602652357945357142737757846742931409963277723901071765840267653261716163459878867046248061742299987788699203109568672999611354399625059553056670268670442607810391127240091221118455504181163371307004365841878164807107717112734003891462917019423659852655032630589604705221757884233993824823338722227971674491043888746573470990106443219476802020096406048256838812397064895300376717675887654849580890964559660919430453990063454827527323516479482476312352396310021820522333818295571309766371707484728747877808468894235671854973869545654571970745707560732403080153854946275264209756107895810901588195846335671914057110640547240763035324015180348834831049625298969971779969088901790315281470350972742196888085163985448256731007339537586443845457178185736125995245991787882884790317948359036930647516333967783917094208450568894797170975312213949603363957763688661388283764005225667818426713214189374569882321846094038426695376508018755587125575759510074923596780051466645401796082693173253273885177413603349899355272820963273589248746412353967823474610722452719571675270149756372246194720887965792498766136323065888027913976398449576587534586151903386944860760357752840339429617626287551516344070571955446493110380604274869555551579001322473067852106977863400296661035906368198860012025571991531273188274518441879248848546720021365758925345828947062490815177074898346363732655044105737060985093304803690254856112697118993894273757951582051890426924427864493732200492401995582495838165546998811431165021110731467298375688220007066291711832211580869455596431615088472308186799868230244028638733038590931825362646230978289844913689246579148310959356459019288738301458895863842227964139823711776098532937951685095107255142997664504776527008040662205068603896777135888383190360964723569859372470561154610273897442912700871990850842088610220214604607040182876385888631979764160303642378664745964161594460367046823290948240840037330636305590227925709075885317443661181389313880420391193582686338669231669854649350927987271749561366895579955378591419182734962184331645879183589086133374817192424101998791581247786358693568624499506928493900342984083916969471115308051326635514557399828135620869813827156287319457134472178031030023607830932929332832388194892532295691518657597612873080509402694419749128921189710352982934820653897056772699132473908354328906627326273711998372825994488647413391098289243355645010992384077857788312917886891407720356597995812123792972925118637347750206721773957693825538100910832109966674210321392285786248788927087153791544703788151616606971320061496644955795581338017923333060699984237943535850623468213116474987447097042046407073191234238294741304926428687180395996394426412737916102962432499231726949371667242278885821606698936543852073814859751195440942957423894011989628138050814661388466871350760212348624679425012108802595917081267738940433043329189805247755963239295152666516609115888420145232577477492845712033729296143409151066201976837077578452422923949707582750740385111417280157777330907251548885399875178187259465351705732107235366762746673694373091467872382088410195318726592324312974515380356831637984432534716663010336852881093956973656627917955923350485507697124734409692119229623230052012049774969335900043985782593654619107260162449222096433158056458786799275943738449250034564973096812438820074011109982650080346595614859097837407706208044021576139830663530365473966831090776337652228703108347681869515588387049308058191958904637262520693091400403963890090521507909922485034549865957448405587975307822302065576898679466226465747994442877672168706819516071515087875671122293241345840895211838469306916909894805374767754062255495572302710519585234006683931065605839358993780227976590854062619565383014238458915001669925639669931338008851888923055145224372139150330853569617193259094690144305002112142029678166651942275526884198944068603445874259340191360041597476047161748576669490121432718749552690630769730795590248172600057089618143742729026223012543246211216704849609490872073470474372213635414555094193638911049203535048359644783604367447265970105646089745859232577164744094826478551259421765127342377931958598048724469391549516491367658565510441716744722332486755519887954545904332757496793680084784276485733049209264581024694273014747622623155887679695894891665049490462349105441480654253209517363125524704319881613085502518817893409117729172998259502507817153778139079713716238192826030858448575140402913627304856442609395008933640055485004612151672110171381921699430546126591686178999002511108890481054533676195857392446396063090248264240314383903830133162903638016588989761314391973350207812986532501737666512602821542922784620125172144536239969181666914557363116014083248151587181295920156300717220999924623541114389054158177490681256429815722059946539396820887701652796276258909740819434027675060891306876433621091826797353579693488228240425431157573547256406551223195078295927792373302046335473165400498413878192670070426232762970739191773719572019124039910093967680288766633652418173549846324654265863816965608794721056763592347154779229716935900797530436502120103885195007852021427545888742778655055257966554372519179826811923668598293165817784660827627430922652173275104353395905190352843804466541221650200812898534131574801835529883890434893675857946177990606075264317601564386536548626080259242054430826801300823848936348773053811034366086230158065694694949719853114920613414856382264395978408280994192071603666024808884088034515055976670335047392098884420223003946073551678082273198547186953074301742009389252817975037510888163635585975478410701462667802479203051128262307887935225816308567141351259918665268350678654829250177526413442795180740370968391952476365589729375308730717077568683763253804744626629070709000791619265457418349222235734614815435995055033655605792094630644081121143534457343095282148170563737140902049946358179556783434667425755809872527672028494640525158831997369624362641159878942867470745523884726319233586002964135313354250938031722726708253559049673633937816828585312380260052614242262173039098148123968735536799205855526635643680928918055379706920516970544480935766573365035540997514191750943004191929813777888572769175105148824795500215006114697360156866980882384421315465011416170015187964320770172436108170840637065296940673830041918179963449338399345157865409383886209528998784044120100298712890927761450464662741018200669942749471585344015989302688923786946689078862522287990942055293594743490473134647497885609663323122949374633152551487790218029668825898028545421188412655286423516091841472361290093429693835452650848307270216905322306441287793190677322821078119397224660335082730059361283633523037413879264015995036280275448603775302519933848336029475847980024799040270493893151512050408635815695074679794901310684695581395039974461962844490431194341111125488777583962680147275243821042631150796888948187750613941092864048285066158472871289578896865127458359384525294073141685499114709196442181033681194693084149087309370649569903526901070098941102213213881952635922417655721288805685490400330081767171876705516926500992650219060955524366491817649344241601894032674290705694672009031188303661187665920569130278721603701694709205005130773138074533290285198128003877559507440171794105838529429932875901898049503157477086151925822975631509742477289951393521100984669526487774812071203579803610227439834091833453897243237077878191919011775811244040634177652194632433520238361605549771809982712214900219362827919395216197549633567879267117314411289039952945782306798203951324056813081557776126334639353900294735912387387783453258791442239293852093708464470446787097298859479411998628057555126365545440514613082595535320129582876413762280757441601435378338489512931252807400360043224046868927163849785481722364817770257356594084156948724016075243420677395767090723369886743832509478956492609189444681432005152430386294608889184294754552955094922309464391973262215189669509771192707272513799899203307488934722587330006612613623470423502532650169005394834990877746628749112534860176690298029809433834534364130578751103425078493258446304618456401758660965317616004534974972949370037466077483065426808377920708145071092850679921990743846923731926777070246229345667493231276349413151270320203039410454208142414674209286095290402289800117594316851234535708248082694676252463786577483138977536166156487560539997294324825313183150259349035943467022761195612943393597531777851150592102152988810908608277809090528192260243313191143347625340290806287628220156617242059892130329485627210596413097940720124438568042872747530357625691011432793884266244928920073281277731326226592402959746411261875246453470400170702593418019521891057830647059976166675698919880640505152196699618987464588022828191423704895070407465663447789478044619489412685585686068973260118404048007330217861736438392975204079341827266453968008975642859231018687835939474583175105386304746402205637683359852101053142305361969228048753514660356407971961614736391326770590368588980808756363707567520196906175795287866685151001933211838446564083130626926842657020846254133369900168148134747789240346090588129186076142487079962968598762221504968312758251060523107941895091255477769857166035063383040303251359962449027786038372511268875804993019148682042029414541208477686381662045773624668599320279365656403002499125102451856371511741692817662918701691435396321714945483215186889275095883241575132937746825584852428261767099757926422873140015339712279266453962716658447798093902355960872216928030555608437142402423329362554382781357827695379980673939272645953071252106001704509527842479831568579539055987038129447290618083812413232800427463588451981978951910889036905358050006929855723412650535794342714917631221987886160733280085003852856730902317891262671111689295059486421336855544800977133096660147106562083909121823547490860605539085684605322164724397989765960677887526699408018135741849079243655316161084927470894623796228766677561747740689756129339508494387870172202263979854808400286030661133170234097322759892178102416071278079825382565292900225457352926253616145717954297590153010233410889879517863255954095902511993567125696686026431089456176566402650261048421816944954307591575347763380541595736912844545058466671530981065251264183341147709249001609377384970388415232188703617110935284363502907149250420955132441517362298634510858471452079756947772220072221463894362111999849416429673788778206134944991847085083400761696271326703489504149184235674664909449580104064817637043790020658021399543457566363012705610784266215111353163024388686113950599496503852217325989225664281390966622885533394894099835069096219739158779889401150898811324538503490365271810702119368162378957629721178617305833741009567959428202932070953630427391906472952572308597982018211093744030276171430199313394826514559401836575526575857448068995777595786151274890296736738373701966721504490236519259228286678754686388751723139330771831220661053417878556003651615529221119735366768580950495279734825450751805932308532183803531068441562148452804664014435385494218939405557617201554118838643718570485882948111128649413509561058414689400018263033633138895065610262508124757250937143973277585355912760448546743039874508970749777735020258049959642303331481947673607819658648017553974631711357544954780591975380600577049713592960700187387880250049005662082736094050648228085067720035068647039582493877521932904806173328811129260541658298389626509593309816886873702764278539871751076713261463506924042812747270345550720322529710725209274261617510227564203244038939562822924706139841247462738897971795204435415513337432094478552108282102004930327624645307856247326564496618553043363965362383488111187378762569054330763888978719450034992353256891031387513509254988140421037861432619744416514452393210239265075252166664803607998761757098413175471608349967246864975939715155554588377135325298295840712565329288743207592628959546511701999505607693874883238746304216792654670900282969962779137658687174296157786888336159110682866661597767104536948938059465846898736894441605642073671095665199607030217588356946242612401372128273929595160271285313274220791988649095131436288365472955143802712874627262020322318905864136291002607728071053851431203009793066491865538457487817999719948915153952596582874631552463711773747801476199691733871635946237400180006960707985773886378229927943689373414265732475852081617503876724672122755664918657505549555419077543969708361234601104271609861279701002631688497507907339017166968238906004348909200092471755348663789896164870792204348583394291459592856770413732621511199118526543943806949193779718643325636455951846761270361020499496980015205022988947370769484649028433435075944474962789252276541738195078249584025184552273763862040942786745611630792336956959497419908888308281590081848368640977349200284554425906768824026929033835740669059236700731871234486960883798908324576628737258337208443280338231517983443074190638086988206277427440347090674738248900038466970323277435407043479936766950961159886312226670994153157338226238122128286997707802272862136226293819317380550202473426570188276659367866594315439072695572693868724854743982564587414711212487684925912683055252803033478002618037562866123798818648967348771443771353271804086454416300939462997412274495650486691066920233677114991649770630375139847981024742677902546956607528722595848971641655363975585651876748359047578053574342752160914875383103098102713548184750791278429560964633978171311389468197550583919615795479557738936496930635455173513663844076127449382553618886562529322753786973216391100561391969486079732185889851062375420603872529597278490982719066935264468531019937744027311219558737981320215773500204716588803809521199454195560805031062688247435847510959205540545561595340892641821124087945902916350417266169878235681256266464442624544543750789796651124351640429105434041684640090570820063051243430020753894282583114405347219207503194375570646489657370383410850853633810175115117043509012144631797026891330548988309681204445601134529182119903994682761829343239802123140836573580750347163725633165542505058832983122013724933400752148216318131059364674308611252796843988816777065432620117345655815083193449446468154989000051487365479216619651907509887522096170053633002924481007542213123072051568211070365633175064101183693620672664808280279787705823017406633942349070092528921534246092800810731025193882561580755869761677291887004394663129663228896011842672311190730960593446851299137216902175703442618562745098799172186967813981313273408082460914246842687844875126709865561140365454646063094029661996222984288737819864709159481066113002345254377381281825922693328225028583921367035543760789503976669161745591589716977651411387335706579918688665971281070365842042001718799473324637422530809392050813180124702552797644451511748691606023191249127557797676543877238468405482900999493269164927728828173512828171925381873937624312750848622866021024278593600055949414401381620736965906923076152870467459296684015094671703726031644777777734728634830398609512116621564044973194235589126119992247954918539223172205728460779872495292026169119278198235007153542919586165366336914955267162007401029238110095832930383438697058890128621730257602267919478994592108109769633343573891770075671922317232919345394236328664422336612180487455034953037542262279304277042874276916235490504386030620006702671777417350863848839877197438706988620620784499230235233231384710829878129799212327367084285035918882009802097163516709064597762373733384838757811712690420008430389532522106514426756458319665919007634600459763068259452738066233155465460365319602558871263299189045621474846564226784850413769220905587012367889519059755226867691184339654710512129300094295824407892994954972588352278355204074614703832718986413139130227969263690594209714848885021498107626189509999700918702274274586709254640638060718221219173318756366650305214484112357787664565274073448501354308441161038659360611014517932748527191787072465044994074604595845728668224932878172081390752762623681878515098796959606061157112688456448215462417261622065970159274912949147832678257579788611829036235996437698107235471848619619533899564400490949173466599701919226329040294136955193096870141217476171295334386250888601476195267080634022439185854499574104463544105654933298809857982850242750885138076667129921573495626307309673920485736353553405109593481344177524681390542459764085038456903309606208575103282421099276998370253544464773928260718038654727429910829592090370651627243677219481764489736487175039003759451649717256562055312401259594761476723673153004678340003500780195127891764419848495363105513735933835372352163371266950417920500057477829635428927396042768382353794300198995582581173867057797171722350222953492639651953079474774256982522417766581830431045258220924865754697700069449365389220707761321248510450432039778173311262709021866986154845520878576204945382563668047896217454780863160615579570438403898698853106959120606649184178090698164956599855600825544318586347571558173027373047785596720919100261305664145796404139968840132154725897787364241926400096722577121947093453121190162351950995594939100914047510918783432986176890701286604370819742673559950750882756587748247269797722707023550016624033728395086823782208547695583727841774152928356304075576841552066795869863571174619489984548125969074479521301828020808830179512063236138566284781550933179616377824153024614506909335615443720178713547757307283233750789301900689511905048936476654144469751325166792037523108000640810251883850815731057690557600406558511009734634914512729632171674036065588701319645511876094774521386474885167846128218767064537622795584906509972863031040911568589660902697087608506039983312146836165542658599298211775547668200173421185773674367790311683570695516062787896074759133408480015792940850508362653070927872304490366029152864905326848515387217825504166518161331113453061337320387722617984543976806909609293111627463842198697881880847668265897362298337743004616070926833210244672082338399359174494213186693039965758001380806811717301976805190862215568314302818680986289506700906009558960392644044599209580540708470130255404118522718404088571376394529598937540251224260875248507133460311999671836161824352015536010431165645896459665723032583067689315431405115601655685362309235774251243567404983942710987760298966913858891226320063453464482307356890035923505663835433504001044410994477796733336637452141636645423249032725718411116875559727451637051878272495515255684862234076422182698092475971650851533785234759240901411529216219554735563663315595177455197262107983365151337887018057500037456842003597257624038658552985529260479345071810692399352235102497852092595874525183723068378595468054197372119283855910855308330074157614849689844422236782201455302974833437071761507882073181574007623150966692270253628824891990783713788929531704039212074576099006993267359984170408193782771491928805764375546067280383734670277990992085874823207103372806243223952211637486713897676387132842393740966125290860312497030327265117434274640580049612294272393625546979075463128748246036475098922479800970717710047722642841751470666859229321580361236165677569906421827826312475779061536547909808201574520487653664542347796768536649761969913243411676915452259317222524666263597459192566550191976822426287581994566686500040210918782547524817354931726909122919273083324070620077325069988667687371698055790160605130167170609768888911095236248061171330343452014636251048389916742322132640148558286633398414424395532750788013127992415975429427698285008958615762997531870728681053288773311836548892772762513185736786987355382238827271511900888394715212331698439255399031065042059782032865198338343931732437131181443579847449204520007384803956429542806388233094496902017677214576558189932924452619386534906413250673997902183502295311367175122911596359408402495367319597395026402966314549718462154168034179518841016823263951543577914466675449489630189655624460735119720025145340074147762266418146555549150284873160318857205444281513139470434032372651471739254056828876128144618244216553562497891145313999894363971615813713027220819243820160410047187893417739412427655482425058887605409287836428111140503116367249891352197503237439175882867034236190687193062582707645749458597392139133802440959009662978261848448793541257993580602196979618349621616251287397343415658181134189899853917732339675487027930060793230913175702782431839564780827227985885851037988351637617940398927648151818889310572128382184303423322057462945557369904942464331579718384554966471317208511271692917666311365634726265634758184549769019935168026151528590529384550230197390453489571811324511958909586830206439435429240632002927731611958913741382583619540538236437471769536579415570465695081309818841005769381920432345540908352822190438193169135607497310917553009819139622688121262500042778146811752790409793111868326714664023559732989014748832660833569404440641525007677893384177061171298836933665239271634722714274691706291504111440005425295525902518691356561756986884892536439223704877636388485218188312356198206710572798161932000129152393568569660136741455614429885457822175055045070353526680002702300640548149798151355883806847607091753498888670514232415201839609624083203154850141109565776604722444390269236555464521614798272682851028680611891508983157759253319796349463826808129863600988008105696695863790399091512599898329474657021213594364951588260908883024685752894837185599553175700825679842698347879697058176361080099607885055042518821266268156335849705845258781057074222612373303341035309559417738402842546193382054911577952074887658894307945007165369129844356695374855857302890826669826766882408154396055873269952060440779275743099699335763990033581049999983354320924446614838447095661798155748044874961652129088814368838364625552710915113189472897523165683587872340959999529171973763092875212733199927598500425092267600129248760317119117998621026876433514145388894225878761790381434802477883698501096093985542893482639678979745913823829649284156503756053483313310579788258799191147110539129100617537728218044742999450495938836306646451605961756543712583758711958971458348856091103078130778928673569678438064006652804450581560073425627349841339399687189815274545798105690057602191700406059198280614335465473492247128986950450693559026366998139360913285514782076748068683207608072693269463719989279008729892930509400388832022257742916276547503697439131283103576432928710096587405409718239049705278275767145544592081666321599387098502176927648143024681786173377925716045328572756649809466478993294478955528945080006419731741561525510114438590297457903399483613639795711506547349714522672972788622741357916303013315878087492203845093940960931520809644575542433207647231751205067837428086173668501580992583597653790079073199598831648499547810127284370853077880557290177207475866280704109652574829059343812038409832078508903485845187582130942347882146890326522169978160074901636869114024272598974272793924587713920995521614191162288579032678099053456517377468359883465011926935540475142810733133400965775086013180507645442565044954245779086252904060950553311696237091306023280157437194610703325719818063331704772394030288051216586939092332751277571672995585278829655153200989262004577190145616467519966083026324471630276704311819769786628367206326123367999679542927237207323505407514898015352916951341659130164651935014429363885310813477490962633588415384442449602928886198747566482402059399495902320078793955307841497334008530460625088717222263270399868426487301305396705416211112515288510606528756245110845417366964006354620825631085414903229878578930943267465874099161630473184560716180181548633145768117546531510711217590318207485228824443985396704809035960048521800009955637433596695745222439553008480333068843256618304884875991159039364867148819137463062986144770214661745953848693576722180566349209213316341697168821397441942217726707178443347175065338519079630968257139284422008363446015492009514099218692660254341483137400976164315717902681385207495772579713715125894023444908824588463912728716456005410708320682376197729191214779680554122464331020855115658612819920380365612341443833833484039611967114628936050026515245210415633137597404456796542103457506516247431683639481526076748795397207844060802898144457180894602876954671261070291474815767845492411571727075639427381525177288626131670036636437018716538132821773077520542533627562794927232055719978608898428744595705120622662463126696872807923282037274254935990312339727326195620725905670048146360786482672765474016499536536102662487247508223985779815308692451424400717782798317003111043719197744030487192077507922003342296381392338629706685462771947673940922822203286359881877000538834632293346391984782887096080287681337142400166609605441706468191312318704732229591648705842060572282809645332422012987038278155462344172205512231672221178661280168817667785423909093503994442185682111028264702496833523980828384091929242656570376624986771602414884905827071749724345527678879808587614737956136052420505255774431614098521661512599875437286705252885949833193430111860027231634882333789860922848745869552413214917914373105446208943758156600145152505515797682548020573943462582728912302756799276971299954863138748344673472224266241846059887950072763901156392584359944252784936125604232537832963257354860246281234180501899214905573470356341673808798208114967748967606349405017611504648938730077913995189103464178527043558737340184920931179303657038783085734513283560584281896343729372510322297066073973964698176956408609877413442424109176125768999842300636449886429319940322970756290102104397631680740523836278913917313600783567443556518103001014140284580811052897667890604573550878680667137695715870418150515015597462058880887747465996909140625346641521999995368854731984075964683091595420471248951637208697281757465630722245163339064536021664220218794047984822597711250924965336336333573776397351871894829185242347248375039946662354638625031032162286639285169845609682297460987703870181456722788792452232976536295432670949327681506698475169202940199326997319957981185936342676144876753552775059678517024249414086567282127453358154790518184786842466828841582378813877176912187150894275293235998936229270930164993878338373311751668704192464798336308090387634833004691153607834849327222127198419090790655020750079637257173747869326070545952541128526224364917012311935904148912205386236593993541615266561915632734136584544690010946580125186586452727112888138451044095257991287614096801705509700521484530652297664570095672401723526362609885740099114932501334092451994332297279961658375370904060983625033060763437150901289808769701579037521104972543882488356023134521447043862807990367607070617899710504821510474500032737817283897871802114052104506938022498344933718267444286300877949332226504609203918490028507035572978790276635367527285016949399260060019798933374308399847000412225619879675460054969245125356405332301679943449830584877311742068302026988916057999138446090699749783949720986572217703865428293015972906090076815640231212605249730593897982961036627918090853585120644798624021580532075680336622518948825204151535072992525411030554491275016602356395469149703061300796577555281968608248592292492566098341474786884067080650977993711879335788307292315853009240869515442442905317944951603363518514908612676475930442247397764297687414201013078186510840222851872585795000730728738830110165954055625044566749043868970584996075010405434915874513570736958621008034840856083545456916208877362215774167702735318375813462202162946026379104333065819812536212966046330288568711264891649503746819358892426091344032376205814099579718767840439378109978450708671847050590411258496455415448040611198819747086873305691196305739330997743613914108314568859022315627610565905735186530010539432800072956262536869062100717285991357705116972749829469375488728168635096235045598460110589067729613151891698736607042248681056464684389665106567779710021437835911538790076896444027565122912086375520316580152683049196814540000172466481820393700642250273128596593766134127910795455703775695749115987586781805908609445634404467304100949391360780739966810520692787764647121260379557373421447121990801001148620328896975357988565077686039504505867557001573414599310544649360141691781612821366308728782830646628441945274519628070643141072104829249462147040967709138353576536240857550507174750343314606623656878970031494650804922231422100627976647583454818715688576645753354315328733804694608491569800045441662033411887679528088931652245395728436744079124257893289336036204616761489780368463781754299591832816275625681304370673888625576808592830430630478495690747237346028962573252741777137004367003767583318314077489074114659986884338085203963801316582545940398989110765735705843525644685971260945774673003069119263913906673226670946543965108442446741719112433543601636050380747312886386285094233504363441845836996531479098519872161658012839174007744545595199454943382806424201543819470029757313598269564573644216207141736739208589223573939868177407139953473129883478063016492198436918092192062348421496809218626686996418886273631420986250708159749818193323259113255590760298705274570470367740795907543550938436743684989872223831521362891877117274553487118603392790410412636809075392859361503308944244099457776846886033346207194834692419630317131485668604355021483400404545991308815045191245160687289732533965393702580517819263266358130468908172040392368159851774158997761369408166134003482341923730832220059340996461987975424727433291772970827654297680414911479153647457961284791826996520079765651845666864680580795567744301148574781681583661225717181546402750088292811168976637131530724745696600084656364243207956469498268102712346618518587700927321584765091618023370685926242231683701501515579493800032541997171824482866556871274369551207140753349745907489063421906086856588888051003450138580712387873900821949811390038719952105572000729736086222284807890631202914959823273882764868851384937940644682726681827976434274465454258810576276554553769554641337807363498302509283574100099809665341042432846274071317471732687796272907271800817283040539958943742960730490058952838828443124966904140420289289373977569292834451529842930461562518067389763339276757859526575038983470448449216861248272958342228390641280768330473405011184408747026088288024031098611063886873907679437989778059642882900409480796286537499339112246475162278652189003247251448121409363731840672166197608858956196011226293175157978327569497672386074964412335966955430547116871926951496248908551773934614353213968134095063269371132490060591911648095498912578323198148404545084183080014159704560549012209185314160768446120720925007844940610045969403068190560164936200167900970237254449692764094895657661192616850535163419110392941529314567764879049934856868496860408200573593722622089385304337107212606277808016382729175667534594120619265584596800365267858883961799752536726380040741569937067490697392143420379301816585534243000311835431929841408662077918941143149807704931302727790395973900226597805227374218914655355124762171807143519958948201264173246458577376008026149423082854805422103874037148760946036938336503538590346119550541104117074686758201727123726489404365116101255435099952479224548240156687620136146195008636061187246572839481314637993348284653544116649718540332449529873786226437404918036193250021249630264732428228054871509785614877971722157860991134768984032100815633102421894530695349737267440527635763455662122931685180902290723710172808038442108444583089461663096305699780712704680748930524654283100786411992096188571280574331547201791076919782862214274181126155768610042739511372382900840825390547313524767191416865590193962011699651800858897754545709721062535739182820294160629213262239327492957905491309445070911825875322946726743020545453822656073885688961903039280291450131667101416039363781895799311862703655267215119124934650661524371138978553067978907632323089544497371264895915887301316372777885022662233265562275599790331990650061167892722721562714896600619470826626273480229815393591707551725845509876918537664789264429307647722815176408136654672655234518330702097635929606257924480923979024063806950209537446536043454979606064587011644807674213057853918112271493036906788440223606738421973525238741115332300176617322693046706053011059269329997357809149784423805491726565075289766994309149863140584095209897890113425159191289546820206699667061156084726463895512936028359739459930712616987515316897172648890592760673824307967599364557723920491370759098450539438832783429235047268867399835955237841171525351984237889013130971661038632138454214385049665752541484707383782525190643368786635727218667754962165830318912137886443508098552414756259816555518315525260495756733630124193051502125877901428660350019815901031355427960305837965666985835181890540605608066493584265741623048301898998791448456188095236537824430480863240129558868623792946167797894914166280368910062653389931610107546967744295921209446929089610169478616269447316027813603850194593935664719495114014481192570499633232643754918529490948162294821158877914207574766238291214510572727405285930115131658966384228117274510156031560943076277103710702454785010353142355006809622579902858372761340132486205884273798078786630900839564937974159515833689797434232059966926676796240235736708246885172790583486959984374089599125395732594022651148891455759600815725655195319563036367794267333306411100752161810159820132724962325909526012557443021653056016083271957310821075892995153434096740263582331463068065293015724163082366007895371533778733282644071772419865625596032385619332212536547892960672296757299689993251113586284856543786965919296184806851040954025649844185942083416801718168803202062432058435312058560979082492514525089037456233294567717325479305361532534230296358099364094339503841341758964091456570999152944995522478000722182044761615083552172738025024387425554782112904247068592922636004939579634230167803752448198833300363823549071541373039527482033624193474170607800069273373068872035926164028389195987766112322526975629097321717694587780321027352103130475531493345316994028743220331355332165984444718506240519354723000779283399196439359001460314390673405446033152645508127191539858378717417462151044156924189850401624401101252478680396137974703442513069145469648030128744378812464929017702683521505670993637467982959990055567785595556899372223018951407328259108621433470819343958217111086197171875319759031275438685549109654180024052232057850741595994067605881044355954825709904944220159781622229729586445549260967394393432314907508561329778009379510172946703975006716520203366805254981440553996091274870699390718847455788282386138409854246213638723422257041231179476461171996856031065534553407952046495336158384044475824346207950705770828472693794310532082843555336240308716397235123327371582598164566482444983230957237508712279288113696162169836426724800591094792168528643860083424700356937555791871347964783939340221158432151370182743745056888618288440518375442976528928520410482998019579868705851797609009104504511168177255189509676969113053229237086542963687883794988942776302988345824177374548949872163316120758112049499308683248277194497553136898209847734899221489361829781210484688693843246085383939482666784228604773440927689179347182983532018956399910012786595053531381507987453862496225152255301289618198788139652807776956612816844666939650933727637490509223324265792459736580205781226582159542684439216452366927891419238986107459643856000458704116496394459412304653921158217625806437519169146003863201223102665927293711942737837176520006680934886235684204060794993832482513073976388049654819644069392826564293523484826021144646084318163987072046442377720056053057186360309113863696683237638162224540089980446009200053246080946396362288225277071331544195507960765096544184822084611501713402557086313559394862782456804040189543920550009349082456276569120065941720326558813908399632726276701387815127275608743231372297730499110948351852202490321091690969405242496761424115916377842353997242124881519458742871112358844601549025787395188578858319289049691301484208661349173814321738524665086682719612736457133052118514628891902084670738989307935065506076746549060895774032104414158525210023363988003188547889720695319431146912335173815486248834027180747642699547892814149335883891267706673647872310000576306607725082402153694194579312453381785343402039331138501945133869308493687625374718449663160268588916632073624448124834876201979412488184956235025209579977691224336756266653312835133175766328688517569147065934259834446314097858578631590975212082089763650827734466259869574387692188985007962265512351412460431393444264622481298932399335086710358011956171389397407834585094722338548004184115073564215552023991489609322212343982817017574882089951779894777839566836791105479923578340670021414290253951886564287229468683693702690468815712968356573807703142734699443581929621058499506651239177478421961850623555769116289250691781074101767722960411795468075282165261450020166996516054640383143022858889709813006895774794458702816554224773289014259860450634588706512141223850424094250139268702308834635509455829229368731089932816110868752515435162331069935806671712577560184745810715400955924512554949097639562799353829048028348148138644410471716108282558974164586196859115322523142224665020087562422388524396260077726824696419129709825338128635198462556635080740483289517079948917439272620524272544178684271732942691808495932770502294738822002243340845486102885933417236997311932298928399205406360288833199912787460186700636997501806036371859347586149709921905568809671240019873734897854290520921533602674184411775479679621100343544285216239855165590170976966257459284015104124166102944552347429360765535059961763317195332211101878071947602829643274158526040859806555324959953012340605713957459651872213499260086339823906786521524312911844306439082192362389275489303110222377148093497050370405225955084709698114331069721774516621519292464657454281083022473863742500855203492510996834236441113723455647004000855259656093220018080405505801303441718107545346029703831433661756713145302297729113111401409961612402347937890798285993061702956083616565366641334684240842134872546750346611644213013404808394921489398349303155618367082793533953340045605750783786987312775653675402303787253126936463215730953033830733684058371801520879487182266449327354656764006244789523291253990208969012619550322878350901551155176398955746796925541940122319762844611614934732824970777819688506572249003701059980518852370030342617707591209363625406635436596310519073498765399492161625204295048292202518527996562958481271734319687974264503324697071254024107489637837528068026010093486888180359023995516505003662761247513978029456637591578249204546313596379410798126880138790730322763219145677391014040091803079070636692318165313519625945599271696261185227179401712819913843277034425986383137399641517324635154335492096305259643843918563476429722643180563794293568815089989210906070386688981645493026429079516896660818586738711719397263122650194650538599209703190109625260559124457949048403478790257576530529125084763691132083628286209882966422807107280035989847914038258880600569177741864666112880803729702006539566877035445757895167097286473250140557312149211207986760234096942444495764097262024384927228167332352669892009501913100956713362672586974584409753983456384431753781325871547417667158387839702379706913302566523103794524483448201506486191469797575553696235272444395211316660458400940526461061669111705154863725193988282112619361415080921803075132006370422431291243060593751649941562307948297615305146198517250475903671382792689497652623761169902372506936129677427028292863241293244149162750075022527459046622582598592565029113529357903416176969278017300588269695764305678225827413083694162186176566080158065711609282533312427067413715959867028403405715152133482203285449460306516160231840250024563038890566417862924741766312480667117988951193330333102047019224038524698702637534482108552346398318262215558193862228289523571201861956999600917351775646533628695014698058273760568176584819549239484649785583981691501600796017321865958496379154180237446290775437931748481758602500737281495277540229001328354854021036761221147133425937071276048867517451091337699779926164391313287410904399909175497416341946747073988219055051449278897170918408074709182817291605006596262675873033227827338264585388702975440370577285102700530617700501276351996473771805402934092874219049846603823830454359408533777606225701904468002723901199121000809834654413843295063907828431974215014285149763470064991959668706631851513275146317796007893955296379182301453627150110511277414657456784408737113673091982605589478057087833013084488553239522039679938949971505450412296500968020484127815381582735752919678199845838891897126024674457311868429939100294907651391529138249686409081794809204373421170559429936571806812676043545057814895105483535137296189205852161976738978943009006826436653840864020063515722414857442199129617034265499857278685932037315068219681936630347733635960531261680193549197305995911227175826029123465160089845828661241807663934824332585403976515508922966365776329579925022481613487416591433464272745358706705517365753808134908303843028000417427176076839069848248046362381053012545163175050989351479041285875917375063334783115379471572086707657150907891896455623354841677229976984685014006988148840257887666510349773190667964025687546368054958200069693511076122631931851442162010164030977452726869577340593594651139649537917021354973888526135398481220449703451294538637501667835755838087761446264414063709157135171645579172966460051310864368365271970900548124720778004131164884054192130011353266162383807758827958115200452372950760970401564051885328703091410575410637037506012630425547735457674208146589325447217498194447145423891006332433417320138254600057000664321549932556924597303305518353505929812816148437012961945948468901716742892505069287688338049666944530862521942430756765718472775683265271556546562671857114811939041321723358246064311502961225621410639227959118693027557628936901084214201305869769248027113738339670285039385846076220101290480790549985171597926960496161793578179910936731994452089414277199388341071629823731107279266157174442561437265382632000832242712523427162633647078784843915760938436234436719884907522018309566893768781701550755020784706795263232619802109897713816407030322322425862462850652215417804042362805426817772052497474759177654901121221539699018374706813706694957326165492743010170330517185967527454343328124750449825737584276050402563496304574708382453540435410741220995098121758837909956468299221588316539322431365154658321531189821996259914701810448311531018947876135931444747725341303717963179427132695991217710872555765526523348630586775516068631187737870430155874136258676359041023893952779284597720507722617340492080845069031772740670415920467837055925299118582323933807490220973039869601731202001882011119528019137937981507519819824391575550914010333431267420771634066769180785793694285860425992060109376249466676598621582143553019933151482819569731087461210129807952071399727084871153288087250866710401228344756809740985440700720735471621686189995765640958241583795600836914686375262807153763089092545789341298524855880000892293697722594562524635458414744172550242546932216257347246585461203649960078834646953428026560218284197615116590629137938889523315186954445413166254205989288128915686757796357875420607110897769551306959045800113916967979598954235558083500785431780108244421576669431247139879113940567088266024669472619251760671929394552259239635834904665120947321880949610252314778520090211431245614010021832848337354235392688521652120299305843853961048480725398038206588948715856636866683856320441660389227357292683821804064473677963681807999442541402006816260536522137425805093801394280564382530371408639599371800646734423941497774394336593522264399589159154264133077858831211371098066493313586038505656199285780973545750002594549860544277211384116795076812384835738050582072606735951570821955656004326244565022513054394715059055895018021291429214362121952143740694516251023480561756941378258195256798909185913795214213870287843251371702110884848627620812568309209111960143764172899086417296683319381853767307687211487687744381565895584192347307723834210775033855497325905219362203232001991526859151233158099611992740261229060595612137386816007029304653917952147017170694769198594000387493896408468377111683469457251156380127689997016548027181746196780605996137833776912020454432491248162601207377122251983449287210644655676813855177287204915271612256298501580386306103572777511907926432281901668284372754577636757412991864635711451161762840517802804698753107648580085646307111768165505408998438922672374905071977909324217703040625292214760223534047651765904144399775149150356197660390938661686347622923551663336498909544815236713802614643726890981903654245430624818514296293324404065550452292878703815871703645449932529443115247982921467224566791245382433194294696493533377806897749450293110560612849542132314837755707459753529881700880095423021097836130376335124076201870699069885544944751695365953400044175499558229145090213879628868252745819005906332400490374485546665695307577988038542557114224795447288495242075643822684394867461507466554656928138555345295220961347134243723210728694946432987865325377579802420283878792847224760531910119994482058295836590316417279905907216303811164769963373327845913138917519623753094861257287537814003639917646219767821650236137241416666479761865873111856474329019992991563118563536243630686976027272735146687698391130552294132998419578736323647806521817765334381064059483322845300859138684421160858836759917583619033996110475612723196315783978239964850762411407495223867586110963688753707618137781207087954670181567567622177544038688650391979750877613380356762635658484438145751826723740133802784644989613179975691220540676955603282713196018320688191270306519588303349605522791544813151015360304542315840706655545513232322092915980225601605311358914519447134391562234412447465049112631793323229726800769911743259088319591877857805980065379346811581089950559093377907631473850406826760254071863501552663868415265401944912158108240370729951891559515162940894739432172234137173054416601763364245093033251053241123932167212489876432845350730979667092705200110338067859573234332067958529087661298015039323912551580918842965190897287727526333045383729627372000253926745076217988876974640308178703963850198417143794230791157406575207267350904407251482331510238503611620114991304249781960618275508259499019438548540641323491406212665915034747319309199553463847694652992998867616706817833244395831647103564329487029863168154779358435456955289003087075267783907883298386219622546932136746743779471790986096063143154285193456653247503453257271777457815010715505399321563368616514401434403971630261505058447052952589599107091711168941404691922652796388938393120179091035063653979237685397489236655010500798277087174135879631013716690212848989862520760577564585885661935556142477207363245524067031737590486097822944648388638870871583074676119331713152284721070033428459821516507783066828416430042838534649158093523443476437888268557126555785331279953472802134656338543093930301323004500857030691110228873771284732918361397366136590731856649024789168520248226417414372477538624256637547246660482427837299363407948332817911350399596758179486125046639564157313742603044523154482926516980409454852348352087907661283803759991505768570453725485382311236628194651231733367814118035871375544761124029406108284899721394215612103457517613021823585787481671481085038523957274389709232025972503397815095021626593871805797781609991456734876921199397705308659463309755496879994397605614370811049717866830813078753238209001380990660560098650350552243486396087467644938867243262643673265161168753425280652743325696556368792964827341902384694047332038874637620564422171448113439168760161160205827706386759363799053055038787211436814249739915701318650880435015922004031587881148022311046759807600400439732974594987669723241601768029968145492075946242196072752797180645522982845976487363303435049621843828450433290466978314335083889858239662386739451890920804711846072699979238203763174521153415692263050420570548587414621373622187258101144377337423337315707602372833325655175242164128777052027190262272654393507355452256398485300672919404019935661847186050318834770229368336899391651987288139918734567727563755940310492285528404172515814939879840667248512471178979057891984911497400923724424029858151111786000889741997564006581281995470982919925965195779072780189667263630464528639309020530990425635627445143399722886408112802550693903819401896055741648406116443531195412289010760124529230540063954294191764258604038095763986633229482544174841940718296110838854811536516590150367111531073932053334192155023056548878728886817426008766205817988617052887330758708207139421865857106340394286008530235458445708501110856682923469595384271589982588078192073617167331820821264928540741889275896177933487377521773930990827707150319532113021204337909548948241131079347678389530494424499104208725789898007766104045970219098327523562217060880358133721892868146474892931256573959144646664207434606308646669742128700026961077053176082628173228433730962851553813428215066356585364254933270524776716213260576766197833799454243854164253710475465437210559134860237460680483489032986029639405610063668470335177201817996692854197141242455481128700110014575287365735734230087284922681398128898154528826125194057102276078100405512542831460825709183435000431118727652674275250067897413287964976032851165224199750422601746341997188156127500656484722500113015236703368562147438244550874081488037569663239607103205808455949545745072333236459419757189333484159467003770416782713950406220738691316428764526627116189235044137114305652328661692393001700533851282289934813593761716783288107067399281683511303640264447563842283892211937060572941598757052011433886995669803419926047814157310112799060737869631762467181970354028079519100694502085553468505022746010891151304628643629569817778572257286593817403137236911757968090960324186102895129990131795434147968617701516283019775175849745825959070786698839454665924996723144099682864410673649931758785749287721912913159015643451044155293167727193042475437923577167378737796614113268251352231037470852339365613197104961692544290262908236792911755800252159610596633026255790730142593885116653595430512441841384386285994028165663643246130030835168077186106326176196213962929806912782148923440681865034791675773446796158723706234958805166298175750806712171377586273279636753994223375660614010420781519414264661208419463581271979981538510894036346239293082388132365594337064770317093426389049060364866371914047913049684298607335096814331942839047118568078697560092456130121487746844471663369886776427006768988022620264127746251831506632492642097382914040963227215896372111627095218159691467884670600147380347736384966847977018171568973221062682886703145002750720319541063929687719956403533808493592397760281843202878259316498632636902815868501490601924886012523011009649285851072529961337430494841531251701158320311288808237115445339767973060047313008904776387987623272842748918788342256832656846880750747318052706874774790015941925920752972301386468573470467257893395643360348911414807191650283832072288172794655479130641983539940549951012869549269561550864383234888704724980245543503552377995751729553506527420075699040238417479728728353682197815585507842815378572102062468766428363638049575216288386991300533942098086835414693288683894063302531816863441631585880160683725580578094448587325779931291339226426096063219143175089346745493349532282868588550151084871076327335443338911328037550391066368787475078245722436880413036282584721104203681603252821254664543254702086182070092166285215686914422375027116957249050818069578453825813261192476310562172000807575220350323731090934634100704437310347579610537203876521275221550902400247789800480380819122703823201215690128264546331618631338667993822870534349232280681069999454924926411702397402579361364650236110333894541710857214443458486926175079441873000460465061739457778316319537615435896270077412791352573233951415754756383399910558845084598076386084757019251851239092408752583040302593218735968396618424471421148248884881527461858713949007518452914228461971133432736004096544955523200826971676907028424522923571274302630802676544679994280381269755466741622827106429849112138662702130697541604958683328318937761122878197350430237705692266526563037570793601142608389686764344014829309540985555693696800521104678837386811720237060444643873189638902831120693270426744154923690906422019786387844447945915824739260759221150540101154591920254400974139283401727903245527301079694376379542607543385748739626968985446950838480659473429839927681623343231095295848026514338391846664539236835220064357329192913254138274272701632464092807316859934823669581898065910307856536796440771059787639770484876820675046417883186215317864792198335887340300229589965801903278225965648193730356966148081099507820185722146377648956866219418416242177873644663486616116772717166249834928697824056935406453396408841511129709119981381513367847666309728545307692442303849840384493582255074956306276377506461280174763340150877743447357618368139814690493876212581594019470553817453588909514438965896573095738129620841101069493221770296837120719390331664553357119300556160787356377355807000270378736320451340942984483193224548170735279250434384745048245752890343480206992596789158086875443090585014877247954620670316617438911552815039693944967834560837389310186532599457280087945927720431364686023321174148674337983182693609168090670664384564287324231130206774278711929273173938428096602008013226350371060605979527772116191515842485968015213201551662196948526146400080257049880381661476600336847428243334246058365480918056287337598344632452671489052784584660821937978459530877151350569459911533824755180394647482743454410087765075839691733572671280581752190760834417686027155196354386467971324797825320987320551884626424716322971853598208100213071138619719678213812760434124628284651850970910571605992344744135930381791031704255085463639729718325380513375358835722508390895618613800095197417573961558269999712132604893740864617005498130257376661565727320980321044800412782843502144939470039268872727171757288948051681533762564369087866259332076918971855799194418298657358194597088462345821106663520467911709736229116139095475712565245765055846015766770513891933188726871854889517659325392471468738770918301879990814441580842885602391368775700983465271761734281797983511159436709506550639882577649024082920905029335945050633993345459638077012917814451604238964015690866412574767135920252131831507059562271008249582038865791759744928068838549326590799187028815019817765095758578751594451633013564275122115594566929496834468198606616274827544197607135650504026854584762808579274020197030812861337179334793116007908834836837529146877125048492205660076921251426223600676429952119231324999151638634343048773217958439871046254093220913612577695367074626011292719902314967938525493868219424308180123828917311815870508976546247575304882325894225328723338636543918786682124298900438514741952818611387122159723946467249676247365803117085328053680508882330482547369309770395751278976311769155023451278391940876854718903669124931098207107028553982991709647519337761377538491910928301083374194725075880300063935392580842466671989782328326074795762316219784990531322152658118701880935921968823898322284552524304085477848716060343818339087421843225800683806017693567443205658734297713101627075307757208751262906176214912692512585980563310869280120349806744065534890103354333401832206643442032191927582414914066044722228190881632426146170249322512814390588235089110624528658456633827862019285597668344856174824177401920422248335782542911210857797800417922637002145435601200979889532574629914612877078498529729934851025239527826097943510489595070054972997880169556787384226435460053524669161282357233070408012815605278432933971701351495848009282611217694485043635667121385152611392552918597449426082755298862589269760624884453916371789596931219539257386066836710943661275505786907968783563158233371872045097959468753887535821679054256601634784857276277533184260430786336189662534572303916222326825679124837864475472104859600334595053624356930507965493969834702115285403100916915716915461927458980455925457168775604431351123250404543132132844799668901083832089129896988208390173218603757808649399815570071945910535637163122147371978754615370336533271046633208107691117128228879490994981306232978928297967328480187764420754837415556964403360698208037492162711629297109150637786610577251910251196366669140919278128945489119398780093713413347895045692477007568210782242795598712394410456692562703774525317948200266813760041190629696870489765357812425183935992397090154734491577523981663295871571403834058096130353107579570168679059602335971349203872604868885379730017697477291861974655350149432725915317000657806486872519454065234357494221130114374247637915696055817591481285046517268252445690392177514494970947616771921261564842111060954635778365808351282312982895791777918720546304741831025923673803253382644219860540763626445996732317623629930843332293031780402688874008415537061023924171169503503975356654999442736799448947068609405938472640062755294666636251437090981926209181653264005891793220604612188026218028037671653512448847052461649976723586128273635979026899628893747906097543144137049373065944604206731348223572878502721207209480933177741214706780454202203052258663458134313161778749523137967547434234094880246011280334615458224582594906267778196499570698195088465349093481184002307194628998460811719283723844014476799733289592304655881896740189134684824543462432701474202963195129459078184669308728473393800152661269595000213565283067084485396370756605875284389843178924308361615937445522874776629441523079676310808241547211773571740888678439110015178805366510247663086687167610565870571790037486609046450109272818965660902333720992048539678820114593188236200499930562725117484618404388897442830248729064700870901981058264081532974922906555123964007804161626586840483014550949967867616371423183698850640761148482546355653099979849072492709061225421384519956184038429175631413874642191876256058519080967365344959356172728822998969971069854387732315412330333266954255382631047256903703571924581411433613646117687117778826971375855353600984458921445864035779336797252895747511263763413119311634437156941057835988228477697803799985330200057456665518657010466148464559452230082150395040830403292378493019063688790154977762376059044018416568707727687714467951489555902315203402970358384034218627496884437108451753769372165394029585580587113010966810064431208440230191827524900919569283783033598616203332245902374557246891157197506223245888946560437178395463897843437860299278138919230405785027131964831911078852259506306626397465958540758700293110096910492779965941401599229847409507768605789154248776239113439322757562149282299744398999725113735182182599390774314559421531263155133114243701891233803377609159620626104077649656353469109045726983640578791322234723384331292733127912026710705736535773171226350750931913086494244572382605298386681236000131402869276141393498000705953966469238565502180813027305257011335551976564567362566687604641088412104358757244453940282610817124570168501200849795455522849728613831030251061809556558998740264854482476166054496444921282322040801195416000976812627931644910360143349949771424208852169045434225709234085485110691277673771421676247186187391095090754576053120768902238591037177675540129222436034717969898870320515938424877578958300049580404159108136074843892882802324584379868940909904674019065413968555099525646046540106580890802729698058747051318138600400752406405550861690943207991449054128371655513178848425038843895886810677846157186493005950784496596414758259233929455718936902514823477246826444490852234265998486907443564748574802158764900797786470095361716095826116237927674936770774234175737233709948557252424553931990432885623982345319945121902919442686020340452850377189848190575845399045450805522621421115257921003641879043390346509307705775141901473383496811417742499355595559010390182466384905639799254396914789166332996102289692291036954910385942280064135419696963502117568636301644748233360014388148273160263291870234974674650119812226454492497159693814771867366118628434207777593414764377768783935229851631835164587430156552577134229935586962094128362139359667788326881665595800496242220593560854039161858391235662161328993394038064552450258816347461169142785900014135073694118319393858309505794061606708383751874198059124146678834462656151591450876912802867924586892172772795953720116041668671399234074338123815146782996004564100614596871493549749462554297541155481368228184568501372310707637433102846220415795569323115138945846582827337904919585349659618553484965465153034249714743774463036597880210536657627150826368175277161496796742361415351555392315472327782800271015127135609034353731713448457290046560103981868103002647501725892761328542970118805220338224154957248639320241424999974579235139654511860371166148242856832953992079218061218090519315240427058933596780068998489446936964650302936812330287671724350061234980490733642041739185418744201611912383234105292840910612279224957951736848603533250441267241144296437129535067707854498173673019963924288211368334517237128645361541934601086343761429308274620022101018787378279123767195279403184430183646945352200989167004121036261062424296704037713104712398833701048978821405077924634720347102436492744750978048909050396034042918703854762137876068007602200149800586135488386166658594174311444763515224246251339326809028757625441889848020641223291832551821801468888958005794822073194435665488311620382825434347284468945976476801484928258211093902435276503240557851843277436552536203280680544178129078568759498638535164928991707971210460932497071282079417848730828702512271374011488418818022140857281989207818487021470495277445419454025241532536149581752629263469664576939329059968524946263049305682466514426011488902121876336255110051674974979679416112079239356553136545022729051987469120435614327696604247067099303312859040872787632486196938917083059536151302040397400411207794089971976264964925000329214910677672007858880178633263448644555204353863914424663439967522739903962116060156235873352774602343772902433970096241765661967936517960325213193367223807115687363385940723850413145809278703330361368525452978193529893673784011625789439782243013439511502221494224350856795005103159489006085174507898285554016554565870433718224140042823991484375542587311840318775857528841245119022937212803168429008760489661620151270529740888413724492833472232541533738893059706902663435818471106540145178327182823398951249649766069383460713672735797080712593590317467917055017134845589824868583675356981020848949026834497390697875772021728597984016875344573953998547135849686247541324125961599306622271569484465700793698516903296460226833334875768669661758554001268567085420901299215376617419284131838527172008931006220035252475905129201699383152804642311391380594183511616496028555818254193693808939858392795631604498937030697810862168357061403978667110808411602727204999337673034973706111186694737283623613233667160117613846704987521640122620682707963908613747382724884118491789360586552260209531902148716395538903711878718127103186284176392909952795648255414395926201105317445867695642331853503368454511457571954452434131124727322220355034177485154619830351920584565896878842363073988706413476880327750963153013699146158348506217206411921307989979449856696064149304009306571750427989243092517710779737475598880297896742946395661794885611675294440004899280793980372663942601836413674179687358836329741481504620529872061511190907416861454996027728773320786564758109167771483341036548839037541262125158234084241570550834013677391552452566768575355219333359361283750109325839982799146267134505312442503346596846239175238287760462638515372422168838505825161927673972303558558945282583885393140313509749653440010580769627628979835880776580878434533680138712149091470657678278266574688348422942812421921905734570349179441342578117063050440718445227846127497406560878393012179991552069146585975634891573484166970031615263902291269288201067615104958285139651617263209063086635699622617897078317983025666706276761499545945594952916938594937162218537401566026913712148573938087226929428924601349753510403907834164913299408199623551893779720170468022073309814860855129645148861627487316352966960660320095262085040023606405298832465581249569409604585152771835030047243773697640848769506556955225934733806789826561382810554072509669715207596297683607329784326323058920962231071401434429794220097789066416740003578553328766041192352597171803826851422362401144170730297162901077724942104952878139660837600809151019894531272544581106462630782958923101097767749876436524950214606093902602697929368656169417639290469534486085616271296961778047125235346298653629908489214892364251996860963915794211846429444523985035913281845322409753417991900660607659652974073770944547697201992260683962827843809955730636089403752699487486153817789983037912984147646519291627277186670899317086721787775517870146261757483309093680987875657811542348691542164853543660235235297534802714683010498213079139136725227557624432249881478706962238061122796311932458339637897394433330407387829266019096502725966754876638484979086783930582812737611416440179135343975412285092535915388663648139327092532364077791346772681063128295720825049579545800993889631759578556603697985909111586877574893826209996453794622557509289041909205812348725485822344713764678707665139712557563598027112449160444964073800763153739295733539001455578456330467709999298405117116638335039546483522433798035279501810578904957967564519151211197676806827613175865796957912728149420790095752245219663746260079963842230697191168725481327561628438605317159554399801928079744880895919976902313109410307158324312333389303676802412902613995010201188621295964805023287015786050907324268792936319444695210437970676892722390279922857130582264598634067184058374350376762444229227687790828386938585894862934346959220797359004822590012106853240502065946128236318356967838299921290547770747381585311833360061982919615128302542663823164029406428009197530953775000269527644815589848238477839339250937127513215282024935100925385490303362476851668913395462064959324275009230482076211172122529562674933679238807667804030930636139516030787808887166893305565316618617465062355562682554005761735837069420578093804176702939828804781791303158398724754831755725981423205075033775582753078368621541755497663608144832065809924874709926645474357131179824211509388745813369458340529419282721274703249868247467878897149388440983457380630643628671989739582869147434434371363837436618430026581772067984510871452376496584812584157796504271102389503005032996153287147774012450850091783634507008435628422158536399275206727616723109003996000586091602307665962933081983935929858386182223847642292674899387790052813294670202249961779297602214492710531710911846896703256792355661936162046498685236909331194468629761958166217344615192361746689467206672227485946208023511742525513714260800852630626655620528338010866718712966609907641950220626389538805719337459839106443250144485636892552129375398616345910860339687770028841554969811242088736856093407162417331286925683941144273697365198929981250027572388086658830189561377856056949038443106244106599718484060422410385504328217100400554949479641209911042479270664538295436582429800825919809206188973691066564894696251546100014836142741122957830209222119515379360572400676207439972054242329211159544405957725218445195234890127902566752963617522382454192071654850437849312333134259452264663519215502326450883852109677583443041769241357666478737881959655606349399023756159722944870591919215762703544077369395439907544781311140122882615415317639743966311018554852332437338234443459293735817866878497465791141127868416651774580281125063287717855742972469751437873291112491658964952529110670667574533096175310671534300627865821596775543761660080717624218274601127352122360979414995181782470173558820791034366968868474085318185410949377112312828248100468786192749184530784035127772941237277479279133325518386536050324919122731455175726655621483522256958345754285443950163770229059285161586569025111491510159246091532268429571608245399863803792966929783667989272867478603870669399149692118861376115475875928549555355290739238351531535491484461519477977561583437755681890649893017409324444208328186786261362453343769635478644293808981689443042981906935781441302221591495157496568379137785966289704349384591409182013920644783439207900078031308270363396854027954012511653359414626833570944415178115539376371815590415657470466000091969580814421001963133032679803181954291745688919385067315637899613528029446134678377817451615752733997986265635437168826744749699545745493706031852542812818963093025784426746860047590877639235581586540969424104833648219633975075179885016794854900692519486740273065179859500717052575194348174493147600564797717599315108531178987437797192085531187482103096220939287190419788476964075433217115575105138878761051887225295910208717768012665546698948672798637449524636388500593880998035562688207382899348309498515394900544579574228258741007412132831120848199814743296240859020265043814461982944192606369071938277863467095183569974816708842441870625671036567665608146071269393488911462195522523244209644221635474390068223979913027588662774150494878162193218733688607340661014823981954770730866471300837793533377188573018722910890576178548145891177177936903250650220309707795664215250674547204443233839860680725773732680105178485046001407909631358194445181320727979346479878247516586447031460932008686458152199806968314477804373050949654544739445632216229210241826176795006724014142630217142053557802689910154688694799564859965492319048257782335313010136587876711331385529133344533785832455067698809811555086464633184292346967458835003890985109570703087255828918739915074950799249957130810324564620467351383655056105075465267249295346214366624032040704204230601556333042706623496043988846862084768324917531822435826960662944896025082153110817443410084796054165981348808000044657566091170596151510303813875972324877118962308207820403851590661905314636162827578055539635458946415189511196712394388734870703609965932828367049792925908936424028769713764285081694328340112746848456180035462705662436353073949649560309221169353207709321215370453177086477413707691631751325968330255602290133372969978856500609497640677879792029638391911426011444375276100337436887552855749129921744166633945842488142713045137803167442008265897468627083828757229039657879127524996704356205976298311086300465493859971353195623303241687852651157535173249869513527263484667415514334822355487547063938158674182087954301753568555342640903853864769991793535027120163165109461487375904486690763482812756376357111419770764636651693400327696092480435165326036325186898857164011973543983971452580153453115618958091597166753032124842894069787047174189141302006516616747445964038065080647413039961767489335324581302240758772006258200145033790024695462370602379367907363531675269731824279447051552346115697391655267901633995170764732002806803343173990591216953605810843292320693991076909983404572471390738846338595244697512843549292343788979040577053563666508855633974291941057558869185329127427426081027714441933724749706151753279382066381704383694167786867526712098320778725343999159966468269073776207154524297181987893949271055545920835751153460219895294458223743148354520971504226560745321053521471448992346508653899027073086215449923335800534040076774070520181849004859401482231979099042937091376310523173615848361480217146739935512685714123248327912071332486699248511862828751637743916004395906605948681761038114713654933393539904821529415845996904493773762620744446481922261596332682670517770150310430953170649593081858176246361835627629704846231277666285410299141851472579341792346976721256801350722724197921961209731811440374309998726178015063738508733792205015193837088905484203726678386853697291591841134885922042097798423039874285617761336432707579519615998276089613963798458817613875092896653193893656528029974803257041373870351299357156690248253219768493482844223930841219849272321089989902845363890724543602009483127754402266414122039320015352183143363134081271070355272368813331733356015882696866858344427284012439712282809749034242207542850355495768303866605597942265008294908736688924128286571473135861783087240391794155595109520333718323196636007704403455331211569635812576484480470813237461415395324726212816086995014509990326353319233858194011464795887254616951233939747856439748782437254285131537675677022288085999423923966639892690112525396452204933963736597863640555329593630549138084249481202169974361013810947644278058933216238075292455647897363488622988736191952211784933320690459542614355644671142447958209485351897671351384283422400878515478670817759941557428607987017668988435608909438458529421868081601554128785011145285429987129836082409993362369475430565728066862896569306258239824355658743423514681696710728446584514217683438405236555175443733823800724207088570423854929403509427809967939267364489021709053290753515783166322587361227701396830849153758921924078171617856602666855521376851745869928648835620039465847047551174314860864794580905895142583927700908518197276781561279226428906636214499413876736925603212145279468822475607337001225467620397879068141499944851004220069765487101616837251272837171825171341064640284441892811282550476150561661918868426828025281487978820056375897620782505868145946948070524058498640016993116019019204390329317346648890151868474943361163619722452123317818661013753002550985871361738971642982836857263196904346330781717537183544546338422183958807108274606545562528264550805920520004872813070116615308035948087198033268987942647875879666288733547866610460298604208564882273135974534273553620567426514027132449102999447638347957523350560298260901645181057248316120281757245175308468639137279088367794707399173491916084792748603931769113944586734745446980720848141780104677406059153836585415519491872627220005954569700789736530262924478190372003595360344975997293780423752939845919378570378300468077846685993156504718229545766094774567077996989634460564211099980118012102063049843165645586142697074208455134479949592786275397869363938395437682227535644406763358132739895594241639466470093503965209654924671434887931283805701392002385998802944125351563728196093968481427432824491066719793765998338786682396477822458181526234032520058439910164863567590728997411496395699316766141887436148224575926538129355617881692164008488579250825422855223771380498105599211234022890410359596733985681944924222178962421802960242850478119631516633647533237786647955521405413535414976959405493760021974271480538755407899393981694273515550105214806911739186597656854319202964596170376338107576630905716214974365203546827040307308806677017490279600404859181200606292999176283377049467583651022187900663843541790052880427487521788809494221172917405386319777925813064276474049943576556774028225061540500472293190999074027374723672003125569572738632514843417296108824371967699235637399832385005031054237432088088958470442593961316359155206166527611364865373707566351349018063474943620701860317631771263464379139730255006981364124727745587239039843173269478100057015578871849720183900081425629938841499478288377604433272079033936852446087846762550011726683653790438265447540737011981893829270725863016307553649798925574309111622225277646895976853258877513407498785329712527770115234113983074133195595640917264590866750109311339130068624216937861321285996203599988689045912103092274306763644289230177543812026155998570984223987247307791211200137402587224697415452724121382091974403823035128143495706432655583098556319997889220911734610519749121646061076113260425869264151981336638133221670603177629399838041804934937873269840755475873772870707854580012891885968622860513962175300251422130907909653981585144325631019237535543695275387854145603402868510263076660919862198584098629743304574019903327204148798632897386370758556238970640767931081527576288192396577290702398834654129852309114844294079628070028992772177281864481141567822223030233610077076963767255061648171416621618002899487196521512964463900015863492510289287001971412464757285878157107733764618529810976298887597715133694049975196495954488472327120167172215516492855642818490056782887233241526577829462635877947294389169540898164981723306044689740749716162731954729557485895454933580590920554857091468995093834468927466957505511188468632486492350397214748850580677877735312475194078018941887104051565906412654352987819094704316399588195014376510822346928389795767493451954072436222744578328535974122591091847594061310083343696281359147582318123568054712179875591739092005223044385743677880866057731151725738217655168966925462824343205666098440551269483529341091268627093034594445933425930025552537643864107024689823708846945011496922276352022487477171284027512064595621487756935338785059947194091250364749762296012951867745143030578324814608921654833655419928146713143539081330440167803400269127897882462688239788585189476756462935697121652741642375361881098539037496571534589451496248474005533606771967730570440647508778805346540017204931675450681410030517942150014843763351623397119984596715840547124935561239948317982286392625830705518969175451239132244531434479679914082673463453159078883518586256569504899668841274316417509049557343586287005329021167650330216938366408638168039560770645592761524500265196133692745994685638996981304838297554383627864847692656528262077533666379031089073454910064083633477210435115797787317598792666112804459816347646962185054368406752894813142660859488076836497952501387702646309667537025553230066524919753700387563667194001191681196635916121027307919416744973520231752445507002326330312404010042044232369995190543339390707174270183949804987246399146943855835963379769596068573010830133231451274439958965060966959803544300949500794988419579731929151489921366195839302478284515682424983752409962647687190146960922106348582615015539679300334834211933325815579076808694941606653186836363341159378351475204519692349599810780024541861599883406386882164796372884801583534542442667741332724936947185216778848950316259098384389103538089593587590654480638291506294129275848466722840758959512900547922977697704176163962313198862829359728074965779516812290374771531160664144947802709265680095044422192743230791909920583320046224237900409937988296868639262323747715260636423368971325560005091225813992739767710559979650493602839523187539535246755715552218330575788203654054766379989308521506682753757794121278504256015027714968572075366924750726432790673663476734580696433266682133890271528062978932684170669128147567086999175772905984042154491688426007936690875718754609191379736352769232703881516334609106262076538189069683061295235800537224524434793258963859879912888917890903035430670345507821881240875097094066016627920030164380869703953727245608995032937033137111534833778863434832911452330645688021095024404619042079588860824240628800116514883923648210460113721040407590854072602637445866157310688036722095295912119820036778735772291152285166659355384242540880986254014117397284734017916019980803470268209492645937792775012010035784938297433575849218422655381844649916476973080545644331429954325716690719043535225713113756282886867027324125817045972864944592458554107038932917221298211708582853148471451727352023070738820053298419966241156459249023101867473807899967876844646435410892788708219663519050555060724354654046692487187048879631385376228601266350651128087579686939662424747703767164884416941050155731409478073485543947485578307659027608415749420561666511476837537186430938142850181620381811217381420265502578780083301644101361389341905984848568513687648132318782854015525796099827318554736277485554512265082633139337950246479953369253787599461279497718671294614177385836479066496274425365805773209020824185051438256414056626077361407027277650598715310568929610060190093975283564844704779512288332544730559707128730901414492644080586673314661086984481186280191246387907985261360066155036772100747388692688753388463353339585586692222749732486732093611704485097735651629718686497315340111871380906150066092812788644688994182191708886103494056900975073647089565350953610465641830038859083155567298433839018652247539737367191090999320353297503345624438509363776159230571855312094715540099976855076437348483632200175378533604587567388209379958398343195953445773998417482460384139741331824503172157950875931857345126950135260448425486775251108424023976549735007869290766820814683642877195879803766850156317549111001118691769649773792403054881046382878290443106296293860985635252120334726157526975516756181351019067614444057504569619506834857674976494095737030047441564678941707937042217242628205774773000803331056935912887109528218013105633866010205863920304724523631831999871898793403890352097305261452609413020756099725429336988696711330720029977188444561661179966267691475505032891769527736642811916998452459052914541948354565694196757700280975875488842866026678571768557690172734826234904082508275174462424612696829358111162947457022974572790904106436835982479102967226522271586401109005971321618721795231181201179217536050172885372401667652612657521340283094783862100298732310273869043747181299057993819873764177495502214719936479689360749941134349663602875302572469607398133280268869860721114796841539472205681467442227248016380727813171504836937785285081240197377637679680646380689524094802376068366145987468526765274657226378705847351691923856460594480495124602561645753426236833648037194450437352845543460163770658664995737647001959150105532102675984017009008859719201479375939725930061595722298222474256066237950367286545444455537805735118596510122716667828680044759976346894205733262340288652569264722877303917190784715635497733137980097237869860296340279812068793585547558602031779912243292965445154622128650181754853597790467665653649292923084712136138839504651036088404914729905932196943731686244590289828954793762110916186715263106795095927578991844339936171721349345550477250095430478773806234874361215189457237656597666152009992375014572633942919254196887272486866154070693801656415019096121263807176773261721752616661154823626315886042450016312409930680120143058305961563938266025646044780391164892535335569724209505058089267976706483950385533333502166611358872203392554363880357334358345596210322392310214081887351944442574174322581870966704703568286960051921595318544562543665533003612380871135051049541468740271815907264178497075862419190685876364999583728113433344712099317315972482342901681716510501554283883389411040568856866939231947184934949853955418449485503411995497440679234086206027182830852433492329408272597106051780861696050908184834662838917916824001882628438207645475462701577973345642134755485001269460189183571947703038823609473639696305421170743811699812635889394805297635452360333750075785795750540751430003795031584339499767302582205732676319744278591683702696937688352757935662974166747601137685744676429249202823930863628760712716548637188317193700881434746125795663848511402762983792676559115293107731720079901043842600776531862363706064269456989644287581254279015685854828655752862320931118257084283603303624719341346166594532088025691279940967746290303682305886151703637506282715560107725002928571955909713296331555102677908600450300603797802945372667900269731707693499896746819606111615840974047542658687918732896241791298347834298706884676410962878671582866068902671311894662936343824276067028021055903690037769183993855752524810993081519069592827870956494825562239405351319520898519943631424494521960996019403638556627575515996096575623759104913758437670120025655722512061666090960131702553922096499422482515961403780039166496131537119601702258539805739862908101557237025923481485009238632891339334527412701497414199302198848319032571729817777079456010488471720376775723683530634968337479579691200146549759098381763243324103097055666076680404441014349591742686250643359231551126199910201267355466585666598719580632059524948106438114106775847314494601000583992038702187854000665601568877806918552540503908179359815544788042012119607897845886189456804832995847967080249158317209534431925113382257372904289516750810946903896805527632214485820244123991999647081101152878998573849031824158546908419555580855962553283313100266342704300773947161162903249397184437682362205103885248742459632716079263172910005691842248996465708612414629969230220145351697789783241150363964470687979099914915411970178608740839422720863418516874079967618733663931004297946050129625610910670449950017751040028824409196064409664519257232005225220988271006703615726154883227988402965259983927409453737482738920203320328506860368761919481584988541972205871938706315299661424327775110356707066453034859531995099050961678403315543768212687574524426935259485894624837786117941549311956429196542182253449291035810322407023179126336977993532700405982288732215812951584332602417661136873783243061992159590477543852093301983548803223996835855032837202448999200907976936158770547764181162186497021415656622327667481763655800571596379795067005456731691282113882781465450695521985515682339113992773325130500607341804945709260483718240390597197454592748189373489180781615823663843914214421742756230850667736770315136299286601611756702667315775344692933259242052703765338154471565012816679447649448488836468118916176831458128244553839984235914293046011517830601188614726488821383088259800959478968383945284837889928562868279217277394820938557201649444654376899080966066420988054273659610445817123382473444035079023251243392083469514169732511591577846942457963771629333259271221945184883679793645046560015406061537281757288202423714758875192308395523230919512870644585888932978850467799020204786031714682552037962581571605950120011463323704905614474254308962226184537628877747638245859755307565879905254716743114275749663956625450561061335634035384609976126953377041087892546477826702117929034366941976888502880536958861868804125946702804356074900083812241267950701223510032725182274088224292434854496912373285607016872319644615226044601702972784342705136156738954980705598432115866974973423574768915884578274264175087148926032185362641761881479602048243822033486393215214941740588158322102400363342964099549629335473613051838665960710316775165056401261524088639249959931940879419988305656064641642268804662843552290989167054814592180110665904538343400100332392232574112856299262911699128738767492547739677779985859560231795835246603736045549790475073365234887307266971843432370527604773698223280583440887375637620243770913253151445176685979648000014971655461981089618717918373086415554663072817941355074064623904320459228589075051641695557782497280241049312947408937208964672124166009281370314948619953242827027215613390712142698959371120537738237743421509780961988853999031280388874925990601129893986939086000652018841101158941233816517251174539306040029168606680630890473122412341297483192388416165737488279229978831424172741397380950590865181602599444960949344392270591977886273995758263916733494402757403920027758343156406199581971862737434259024490939120404758511242597359951839982773470491326608994113535429915503352656463842557323617759610350767583299478518562978867611921921109234726870813610570834644584707422819459243790350176204004380500224476184158467111031791526719927463079960601739799390615837405073464695389955053042075518240624309063605771094422997599795265341788728598359630500885701069448167322413621389791835980765035664491462578042836830790706234745598970090228764924821729585608889790392511471421167498704456513362520721862391729945546829626451580172728314630284890981238116947229598744626608100282923985328855183788458923182170590711436407065501793983695393265247073421588487052163639625797769480719731338855775434047569542967080561824110893718801120326231068054325378855865656540009826021615375749895893527116105319634762411593894926881502628814801878755311995978717342997004545312350973202650460812912378392434507378926144236007628496323501738424635933078030823375809560162118118369585082716945410903479174389876683065305630589662797175654032713417762115393422532638450995649246801072532294229401438918143136118882496093386815853516381852619216881832202172067110714309334395574178863497342284184696246807267166596008846342241242838799801889950920442142201112377689246935919566450363056571802040568464648846743054988693024160684074075345417068020472596518948601768623947138111575221249966399170458088499486423929632846023089679227679974194866403879342865110995484401261275338325023675965741460111690124216084884525273091086199260900054609962898324498299995063988597524689681970749493565356941103810697808897335315449791221614803927221941990676183960836194372929612650645927036376202125946813938502831287415873643013166110230124871809444121530193451782736569740026295062249592065021154421212257371138567719821236027487996992399181708035600286383171225840304567657900138717417578856419150930753858091232295405292206447424363920559280246763297311027163154025255485345129446549226095410724085073817981119084382266681351321711855243738035378824711843776592924766389693678936994907803977256027001259881682316828348885973298139054257590654451359711417334307499378735043400506007619646311956044150052914107165138387449225495649606743765508698266751501981138503561218579823702370219554869522702012403405396071772362240526437404198114578258618128845366426941890518502389612542694017439859015711639886329993661657976127448077448514247520160725008142435250655006095073574530852056997802777029606855920839834355648680559756797276898923749928528744850666662214633461102183026928864842708736106733754415698506572443670673368485985585632947953720947453980347540212960825438228838801588336546809079315488910149555765261740677901979692663708978524742920854781469362345918740386567671560775424710779468899235669401169301891652193693184969915878814202630009165407960360845227932611606009948938378318670735743596265510188873996109701419970144076618489709198249341194936392173740602457989457431306113369462362657225668744261137868112641211948166170813231220237491656916252245190770877512882981405497552981752499098449050883572900230733338250559208627858955423707062285510914566042898488814887848960132092383054923724275347319974895383912789614166952115200427966821883627512192512329250379051532742007501730367142310178525020324302168797011207077619155287529424249308138827886677390444397777010713845495110707331941984333546086191490988408807870889067922402079697470031751057135056757231190215847292440758782512872456710615118054273670111558366061806840090702338486216768767611938878755462820077775547313306710322697022070236353285651928407274001562039460241421072610672356578364508986690175278197046104819799520362098175623269334854029894373557872764015402585050106464418442025384113238096031979312727224984816259375911966316099040974851845572230545213759053170000820218585913627791773825487145943148411557091334481719095713870315994384816514265431178375267380641155862955042839645708558095575848194866478464558204800123665148310312273907618579123830241798682177757613278961375310498711492989495972860360407972487026416647283922210058088930247849070207784063090004573775486797642503109182045714802987172044709502985340128369451279686291704168758923107301141336422803030366016228582093551179073241442078024252128880347419113057076104675451761267243446634309842229266150109366034978783550858261583020158063192628147293752567259077011057477798359087344930080517817814996852730216185103252903240249719823308112012565266655668934266386779538997110047557165468359681979361854823887898959238738493497830227918497619751119289026240523442557684261784108614319594862694482573120389279476727545069347716390376123341216669941770838754701345317497278515442057529386661063979913124395311904128667141013258133079570589891696878371657671102020626606220207469977896851677473715451428920865307674340198541645473555899784340076031497150804531456249672406222171802357419222840297239281445069059833192734131709796467542219671116880309005365045790954136367749174344013800831738618902827464122287821330771410244949578224697024533268408317326178648897456332601954348498121641087680604503103055998786535036221479818735731409918563230988866532361262272269961765055275066848582229250000245655489822058926585531024062089673094764067977224514351861016509770310049769919944460173961637227546606181656714239869773548300127806406655204466116330137281392510617294092089684797650029222635762990338075073137823609189312262551660513551973979014452487674650574213233870838045582964053903931067451949791368968460956055235219643844783959469890365230399095165410543661574788548047484878370555504800432561945645556717288940958169245889311425025556461286620357824153160799183276351449272575254787476320205470502508040098065473247861292028956214377290279163276826040863912223908715612129913166573659279873287187752805762478855579249309039966855255332079173969757327454421496095736487790119429892589393918361911644959087314336484256945190616318974712924508076146939520586061383512448060082403349872604905048623337990249382518024607762383536433657007638533926995001659128369375520908697510454811331212538955938860731698685310920572495593436190478844990763473381679793827962461432736664459225435564677106460041870483351250992161062408505020441830649129208663185637472622756600688073196969733697343092308094725135515791998029435772481430481078712387366851189135551033692565202396948277706207275742354604738269346244783793612132874930452274451870732320853503443575371729451754719292167852019829044426843719899599096637973776052772074021544144988319352391754398864579123545930886935304478520127043323533813481471536905927895209900125319936269613612376312473720495613449686438756425721215132445739268654919593556349111119774486186516326295970917940063934717499256676668077309327776110671968013666323917916980679262562736803812868142674742757047479120927234484078357778026589504667885261788237406017975472448055796167434202981654425095446592686431906788682474398338256490830083898681496018724725636537576459547132364527770110894913746290173728922798577331322321205846508296869910716002452592947381199678262333621012887176435384150587738203176663535508869842535856047771565640290904517246914839912558388893507315343185898038212428400708451500213439793734717952968798123627714697958685453149490071992122963827961292887570396091139701589053441609275902504303423862088789099525686196508127996366006900396415803259496163508279745497315662993741007538077844977069984326048109773973605573298972541013634481072294977464651438145230758335210570470164886205123267398488393269188310490029665381767172223869845132993829237253712239080593838562249823975798969505362979806598326676944610277869148904655982316477246780294590318665230017667124303428544270254298742738590895231485088613854076914427552074117110391836350666940783778014908698280382297817292261380954407143901799830292187070543999349861197700578121135534532957480750915693815090975083412298958044556949191480720571265313788582195981384224268154221346378232514096669682619788357316942733614151604259884158109830527138562485436938229844113464844401947792997099426620395076750075046887191597891472278690196738936975255402180686365441830718738377554392367108228000167992139220582638731206606770966136419479981427330909208204509107883471397365917970718137605980589709736887118413533379319619708377380112104423232936011514217976930957853223368376867842986859181750343278189971883480088821500248208752181036668042629509768541590924812385490716443527382274516632588983511574364871560831503657086715778469662955045101342829539097605870705007312167898516170408395764085356181913275344164576663093657308741576495355908886003203517583826772207975899025669973519759698290879532324611963501566505867367192814669749531160609700829779595385032617416735483553446730815750359583167158602909113242329839447694340003065525238740512503099870604707367685527425603088100116553120327471826653782534478903679172587548809230157877786827056477548704694988480844737596807736277752228172528386459403694253625178805577796979857030310284956174971162462367509164509658716348447471888683348514195979777545101004501190303656420412294380850185419512559490508313237871440452171133210736885054144654677562346282083887866363063411885140016952772809742648148992460444972087046968165846262912317311695897662800856306977693062894254581856168142157054915720420603502650041689541193272867425493258859739049378429659177399559712903896849079998494064047599692667852340255252208136786490676387534122923876436711093336595590332156475341193964825961324476126320589217534796438533974487408436562101103929503484181659201293925597963326445470342512741593928325010813212608725410393364804978742189705070993918791315043724669881014987257644588585876828330355487591334703658975081993359374170366789073405337507884487780204849454502114667283968914057109387594262396008548171766298323104445955720436170324403694316746203561283055676914031028567068366707208117841381920784643370013824205617277654325229598755977488127912944681033069373253079267467874401011721540047011426439912130815160414566136807512590264774192047325204331657030123250235474487940416079017450936689057539067499510000224428031810308987760933783597442446409152815393116729431539200974540818452898657588858941891919593834754966904970899798434807608581860084754273184029588457165250502766142408327105698872966769220532538761208541199859815335996547000175394496194756280129649540024599230853830126864646415177670663517930601287988365875257520915820336319979285308954502649320387878600157433482060280534591975461882646500952688496565013590417496411295579456987910123054223817219649751207360392105467557552163052077571168628638759528479872226007565855289998906214430853387385763894927636341180497702732442857469820371216776899258766826571292102300446987065731973978818613986197600463504160160897677253899460026880045796124408878150718433527761591661804564606371700592505493435050901958954698174688374617423432827086868468784779518977013047225364588920603604979129706210114485714173473447535791947674573379790477872505362403623357516662511320548353590555627626617870055290334631863295559279522508591583277589455044289050584089667062627103876843237937428150918749451453482315777273344458019042970939812027972694511111660863271055118860623227215992981634165559776224104237695740536826444554131253222558619375834516385473710183918803318260607394276977157233536247934385113000385656271029449513753896731461593844359782924955396150368664291005861976467434057842189184488238314031329280333892320693010680617941340333171430188030015265494862011633384127156976417750989468637238756531087873143535908099654865925119742933013301077388186192728562087048714029619537558007198076614994891991547524578536316093581506498073731144101373365935302464224512652675011732482070612467843900977649784355442498435565862327727211331707127031070275260221781239262167927208723391142037791007375413861194407905677521069307452027132852375047342480877950683423144558231588318076346837917389343463784703529803991658110644197324227436586374647502267218274840050489276366896116976073660621921941114040156781513149828393589716392349659428562262534009177432280248472952579007456460377436976320180810973298916369660877277975460310436873452628882006746777916160852170385227324968135380681447709095548226054117302410224101939912811113472947605713741480706361245687034307024157387897751290578895384245700603113841963159255663376288460734887148460677735323897535350667358668199034841307905240747018252183142335482888226959371242600147159449942466826198632612910484035032795465066875192640960916831110473885726031405457489340098411685691530218815518279902173853874824668154760528593999430901791802438381485549488797247485030256584892523975585430842370350551564581603072755898427393664328569912309937583653519724077320435914847954074686765348508963869753198581261429956191437706618584620980443302921931995790582046291966980180946984805826029680572961813707071479072915315966482760048347137774596003779278122752194409067497513472832667733798414459998500180559913635037505827779420311319127368760111986770695776414918725958561206395927843942763847456826428201331828204438449173189950239835634852645303363703352615406060115522235495163640572083516698365219304487166371085250043710536417539824530457823672949900476958242718871747141812089852113232966207223427680762174514975322250294853750775126082309186016914414913531205595420526358150112000127080371641041997279532871714605333032155998145504737187803065482339080644989990047259488566286939475511578886694455289724887897426540245736255677304374722442831783372336093780679406703097261271740354896086388895685528055045915315911245309243209746982901860147976872206932279398101517109348071862136456842605198275743195221336826872747548656006918316844412234957393049960151874354907455522861231952504201134873854015300737181369265218717041983464654879887469848332662028626439311102321916543535777056014301725159610104416957447911120362696390058223663885195502096602883528782374865837390793220743556953654419045829951343914647161775779798841446330451003744032904936510801558385216846078092593299542800166058059778997837208580482610392341760154988368397340521542845445857985897173290406474594783126451701043840464337435096717529789794276131599759489386075232621090608331605696037631468299513691340617917147128433533088450240832361357852491176531647622891815002791641947530800944641955446989448509758092823965772032701344834466610389934625293146240622085577295593012390006902977397027887658870952835207607857941511145442634024462217128620867283945543364572501871463610747466349706302876962371647349524804926041861329034532461862670051647330909879203618953945365277932026418660219350611269624487730270332025310904014632013822930548418557217465136362793354019794900898849534212399056016919224365970398804912212835975047938224203695952285209101092097443457810896963707126939346864162633939291961147676057964395498628031256228179392051368038720727106192529884612315190397524549279239888262758259456203748833823022556997096364445049819791700704179139177996266018259066047133234597195731699311290536532279314660700135095441520715511885338546384349749753296406445257623067794410274025117689027378149819721928498396261322045780834925941193402057066270804707336341074969953220080388468647679354798476166351414772173003687932246039153692703062359370655234667950823370018452200137222269633823817340520259175359026757802875380558962489193531360550456373010862018068282298184062404891078091966436580074846247385097163413893980886574815111367750011385919016742066541772958638788227095670694433396774691210629465920018049544491420554812784195740832718471302476173667732695481617087843988661547194169375058081998747914779668153554792365487317109416592919763593843776817827822905282563332189070011641455453612262180760819744142532310984450973021887993683695478654948420717391037443762504419767575392931349953051167889172055068708952915198562622802444842565214904395614341737777102818718741171902465436518655114546944904008006358944700970344157433409483468394649997049328988565067100746884026671721870069529948883866177590362130443298023287839229455818969457528794512795470359643231019203333220089051171443950296102409190933526562623775482223607916690549746050638750398212756367699224568225831927788618353499924893042772732458647117293845518184515582669747839323980326304520507903615118565420147691007896455777850202561613722325623201336691390353334889106303370681608590580136154054688267916205387537029692569551281327607037377257690560455269626142443696411965519180856128668005095072902015840885726172465119987932656091602078486970133651742482100636333176027656187572805856871747769218152223128039858855084142268961305431180840829568102557959439460479253358538715531930146160423333003828362939632544874439315428077789043256579183215129571725120093196204776599197176338475759917820717511869710687600319428939743575197978711644258106684438135390324956890555990517967921361957535485785384340055738390748066463541475859241436495508980260779503027888721467495518173579073209582306285247787420419627416911254600424174994744719634650597739696170298995001756131290980661269021755882297121829947449069350597005789755376541914828700806770083192353750293426213708617602080878332329922037021037839823162981245564145431707641785198777028827714413863381933410390858386771033317705580571448189307131898778721147040222934315240488739950083507016839374379094991639752055871750240860974217575812229863702769576806584147644608503334967759080141233483967298850043081302483999882996394675643824367671968755962704383742780657814472194894061686529145515323983077498254569943850239054078676179295282485971715392229286150890594338312425849788148393376922564042234269090328205350617850056756286756030096375337658079309292935188023938162362496998855299365160305539553420567424353901403338015157031917322130266611659775258330382287557728692001370086129454430674040239854349977117456399483073985476949588596852098140730619931336667578232271269484852947951767156415036801594878127284387715345774064995884826914992566122127727348882989813129120816007557730357694842377439086444029740541070338166091782876964598910786115764365159390319323833856895744431561918445794527877417552508625758422665984697994221591005548264002949914536929676665602170303354687809003732340105547470391214440281878442316957629244939164165250841510914297057823097536841162037436037494253157177881222921388378940868719341149859502877784769352722506713855998046261157289894788366500312951405672850933674680283122885830058759051489183557427381461792557171042914722823488786303952115061058622237360337229133990030151682524362161457269301798413528663482193006525957313442773825863651536687704552328017032906720623414675333016309044010579909915243470969823506186277714202066968244756225715567249384595021733377038807614437195113426642318443361711397997674951707321591891158827353507790321471064854903116606536691485187672296512674434433407634578798237629662617276385229919292269286570924879907688588683187925407496662813140440414768494641027827383639060938474309907392431597550122381917375664837894894503710524285434069426321169810337426778975271351603439298572796093592509845380976488602237148655325211590793421079432923656677160280421827152510021433182429678279812318477061067865308432194241898006950227638481124645904866032400721450638012293688836681588648679669360103758882374584737498154472589303835870872056782272598712100329475383093321876626000874837511497444898333946025261856041761514413183610275022419479255308621181652463094320706959645812927616472737432363322438410308055535685063829814778552096374218785329514391281286393255345477570547928461014375935884714308508638530244099050917167152731908540162166181516929663232752267178649919893657489612253592355547440369894920855346044180453127521564507512993942850344901431753757378304888389880715923946518437532986404722419457308841310880058886967555137359464942818312322527636684768437118110757863175063753089266804183053438872596798125029587228691696737080198107938615199318572352038766884726823543509726441023248299549413337407411148863630235029999568597328318766994580257323374331644119677902024021237919429377087749168619244704888991056056068620260851508137695793649309136728372758840966052792362877991705148983087693917651491142500266892177535812023771815034681782381496995583135515577131798944285548598249511056907009114716422161953275849348116456003327309041606324631821329327530394866962223547866477507116965590057472880663863642898231386656683736334707832637904828644137302221815755454340982331751117208210104122074024064157617120040624745915764381966811207199995656049531987107147120185773434876430471569879091275028751948461401282074103285706953360708419756784543047588559009880312222332482973134336063574605304030063636373946577780778806016987111191521546426003096811741791129304342417221389403089831929820241239347612283025011346853457922887770030830739361373294600113914997147728856822390862012836068137663406319286788446390165311273788158006305648969314942911883083517404556921865019830182411713303564067064322945051439210101942976960238155550668231083095328606068946475963245265056948480089407301039695684533805562693405615321385243074322742286096634609229778501802742004353815630819048919090313646817300795275885311175504618872875131122776166417487559025868319532453314738078055925790045995405765663651021051264449148112283157316021131883125236577312163339882431595680062033163052470520974498015476086394943354983904175212556073796467159871526880597277107688793223800499017911645477851196545364654939881072415516221130422479193521601233577841797286865028494445637091934446873996558834072694508616723493622224007330404151762202368126995913805300723005480229005182422024638379755136107425128807710415973789220632185664358071468194063984277658016148762676382130553563547246446138952208258426682924338149309752511575830773283374797312915096800664122232460287277533559001257115773767409896506133621682637496280317939710593079781814345959079990013339053641759058961445207419176669033842367543059708092158145073587448544606458766990347722893202983100535137355001443437571584501880319933519668208774808756932367203161085385063885783256520839703827041814867096354572544367526531082889739809915107407702735509107790289177822963738792990880129733709735533469369659718782333248075672685090135606269059324428077180265619423698435182044316277487131428903926047819302516000842405389057129561614261933154049849447364130033264472244836893508251096752147807282679521091097263568019697115278076922435432409596738803700100986764827085008105517023505885162505400757302718560738814156160704737179505107423045172379797843243564297510659028014204546645688229315947677000956281768543768156307421651926415087817747260313984700497843492884553041214140377973560952832707274703355681284232935296285187635486187910330675929610386803142000175206397136802090219886992999447736786838792149562695545768789702575289603808943701523014905592542834788866001169356667640450076971860091878581195752680005195635381783517346798544314839629174308486915060026320627037214076062735934446075981471821931260295277760401017757646986671282201209581076568317561800488088073656373531387914892607769272803610880591466044746647160387719056847989383296027416235391454228030483182194126765967394162124300285054447813623115707810753640976000781593717244266071074390152443670204737641224992067495179905917382061399251069684799077715029673618674378529719597352607855187900388995481994089461932945613446476089467337896392701539186801649619186877128434467914452786404913284685732059567152915564022020554366822025315116309832439325310389966747412285085937925088592303672358618563645108340575862317788885830914230301192318233556137588840555715999491615837872174437033517525343936930240656584145603694814460233949162441162427047674633692193015617681258054923739192645413626978564894985159317312892456028912607706800611796896765804926607963644766228233843702148693886006464118221236308103013635630888557272476743339086899441728569279196235448872867228126275795275276958795705254577674572644905315503635888850849222388331123466708117913470955490071990806345010055987728332119662499944192969061601018361084026700023551725426323993091981344883654213023085081781385500820322988352266139670252447308395389905124838919093966528587395619304874986979966402799107015221952253853903774772208563872520705979981643654154027039552713973506966571701442576825484323173899029937988116524437394606451275770919830400318696393758571337377504524896271093147071961620338769489922023768923549082744758333631655342084962299576225621113932896766192289458696064665547923046006648451194794683456336215238149301362836273274705744425455714790062171120542593505155648030136141604051448795756945343965112511093030579793570876991730054333805805191895667030453517772262006416700733833984209221537222781161650272398550730667914028380227055765086752616702808569068918068354807324107050195886073681282932353380628546754740506643063317841364408571457363398320254559978791620755849601909964049218980722787024004719397829048421015410127334408775798631763728234387962842728725949734087689076196031345971592677317695289622365144179644359911983927799115238255045724708570262431571764276858290345250272352795330233427212230271110462049945281450124354399242868961489938344265550721522239093582665992702056798566355488343987976343767336898732372516351385074775416887008853215821747738513903936008130537165993710127178964306572271095402804094477709773799198790249772445524159581459361835737665029042347973108966243327195927894192123727904491493849020006926811762537848857084072246332562860853968248686497953713275225083834001507068958070617863729537795024191465694523400237322839796272226044272831680410798123154258827049096127353984405388085143476530690111790847665127510332818437271202249594194117275681661058442108489462278277302798858586297834733939159639163164879202596199908499371483938839506162186294201436008006744796328273342052931959323979977201384649000787079646618877369894241072176686413698583275350734992037397619078291081241595561128284045762464624877164805821962188654425546067340487614850360147600480582689517801705139692207949896128687098544160010453575263777877803069024753219501801857903673684373049837020215636134164667868342931094585692374451923957117428820483288807242645084757284867942714849089884988000396332899025169760947741731448796235306014206349441054693101716822889044811238567692932316096537269504005884579014871457767716252515312490894765840030527928293370848855040976716347078264663891790986553272574151407270452416809230487345392159590295880210105236410813516260923994866208782562675644005180640540731942834694568926785481787297087856781742508365035672445234204793870414056519416005881164205336672887616701642909927948013083809414706297444677385236254617782072158775373147807279081527484496693661334947026333233507136833580716421880653776178640599182665363426978667134014676478804741671976596399269756391450729219718993711306307929569368672973497549887924598304116156857414284215008442121098127540368719388322773717620089086737903479059373903502072765225827649748086350289158890219616727838044165594452079848861057845161538479887358002007347972841341008659833944118692639253572571893120455145717035927167713803430408327787287367745308573107276042168289990639716237388408070364218019000374090129992850162135768934863685394673349289431849387097072506206970295525834319444799094498866565003260866218815584300317541189782491214325855392663036800711031026963763652258045305465924684746756969742956247464881557200565642263338313062910243714437093002054059544345892313619722796962908024344609376890160281927266671696959933811547025991360109846743919364083240329187098289164477062016817633677481431734433876646118591543301797191847699742443001779129313375006685583440635349161824479867753481003130001619695089435542813146424886940790238253136773683260547322347133158536517552196892963926388602562971160602453673600265966897922577003286745009206118607767389624036229783030512005138806881995357265171682643574350988677890153986072353308235789362766456976568955658176920907862821154591952541280363522348099397551055731798053236999992098703955965370619865347773272847755556297092383862207651092894873124893739140249116047535346570043879182485365895455179082801905453593694483917483287050398644314280606297388623836022885943984922789716152978302767337151466982344129101853876721720492754124798421564981319818360141103363280110828731768579042014160321904061339392309822604600468474008260847081056107468205741530583582356601050692464519062640733321986123125662952483363022849086635838201162207901478700868718408248528460654151522202534208399850326738478767937211084886822681543363371023696718260537007562424030963702222123639727047601817452302280428448716176235897510527595162638741506746446493309882011449288227295907720627748371960116135246050592788316187261102604759032595321565814178000930430501026105699993060597836850463314167837939929560880374966242280722559919677576906709264559882025107745211062751221560264410536230263628300697940511479250658708828334761586325361531593132668170636944312953154143722977706881962112464128219809033279106043415967330073618778314300396865364297848418727060631984968457617944991443756115950003754963506753860086927480954418867737999277995156644446928939167684369135765497990904717459816399278894912420748283686460043648786016218618988986011159867758464624404356847908615987329338909469458758846171165030019176464817674263134748481396050255559800907049011538772382365738443269035976409178626806972858499138554488550959689510738014486824950916217920162011128417392990023506745554156078401610949744037755097921520462983120362677304445528235728673692554552668462829843347744930628757940171676555263948534981075038597914987015010399366393344063481907430219086787812113083951535243156954944250170968878968688764008239383037370484350357414269307695086421653692272674215004004604294924979409391623665490045665194896187983930173510853384678724458023044297204507303039179211331824381135625034828300484420443250265329492714933251248436051861727021547096584893487407627765215812036950933634726286777364564154077583110232107245671814906362632103110665049842345106650172850973237149958996383271875228004291316342173834250233409034561650486741323826196519361392822019185932923640235469638365155464848209199640908532436446771505703427660072316821635242667486748258512527737579606097298896922683117328823241036990253054834371815089543016825307679352239095842642486043374643337077294558602970744151947729940658521188082225935887235763344381829193424505819067465711047336349773282085965415090501165587349874750364135616711151921172896981352104453759644812058532780706816515058041952646854633478013140713695281625985476784926009028114535716254474068773505834045371187039609506697185036296428555492091245257362549815776582620409485999918938140531556714159744774367446408657928777797411447408224522827440035408629252495684447325736667872851659263489043613273320345775119988965781461297509169012841864341507485829516357214581519298919563688247265839314031972108285689414017079969401905735768229728828857233458526400747097788870684365220279580121128301546783621980383072303027842863444881615757091342655731830776993306053410235618928894305565465760310550385113434716788504483039821612824413418279028562363701318209978722290574577816549531657345520789000056148897233005093064324393065317857617541173330884822657762036908636795279498157034426369448394589592829709311522920322642459511440529554075714004553217999113290303889646616651229919689750084220099220217819294913663574975534093965866678216185685919260450692149562410557255419119816387621345401780587310017184134077256326533743873476757292244142206748528439622218115595222486461826454659675715656656680273583013639503574510229545817938088847938347741557135039313401830488587815536069910641998582003669446493335148593911010482249054937477403952617395355942087032267384979258074174042248532933805042505304772151156156291798520351076142113905314075623657216762721839579557900569839771571975433429652654000787965614504469934681827326972724034366274719517621251694511780795913028865722650766658088696960023368078302690604491508447718444891785836948656518618039492555269658490111624346986881747219183242839619634694170584787518607132954348304340444266663964306460148084775327421532568595183204962539874387764688737075777120561490681570173250288427294058099230143226305073218008420526686568485766268920768560891660237871299702519120879246774503304966717611862520349309125099352135197224670162780411979664833180089372790277619060001717691946077841674738808242453488571334125297014991354309879652348178325162563637255713805536746381912661884826665306051019727791409151571534729150635073276108079094911315267410610267965049706880674440974090888633939666390075187108606989254479040411357499223779804629815632420897258458881451137049337689033519746621480580545618584043382161252128549028379777294216614016579601131523047175547954949192706567691766668225831719551815211927511106848912958775097059095455674688279999023208349363603365657886628706061640714530754198625766698681761053851957094478313576221961606544668595442694629536940193799990314356703356904429636576459668060398046723123599027906582914995810670363134780828546735060287389363959244400245714365448960928132993707634560239164387444345853696498882878901495068191876395613548044023268070900152011347513094296643150122707398425758404193039658829000204297291929112036171515573853837991900744638139046339345327002373153712194089055551730788903450510945674328081647721963901086340442009669618324310219017498637693629810939111719350807731574552499756403392229566222605644939525461203565526114092235925800395746894830644635729807502283942361077596394881220317136378526979911133394023268510492556884304279484121592411086255120778455489188812857576857357001081764978471516397579695501177958615479634797216119717876424153515778425561094525697204089459051644394385279863344867311137888881922672708181615719949574343506715566073698980427949773113899328144039861570838754377008576320616747097818934859903937635989932640273505072659897856181299727326687838396662455990581845630892422833887995052658865496556564393870370786043435281732312002763617009063227978711410026688175173871497149384812196176031300729394915406753785415020398080971076983142587052723919654875864513678793981697835264625957360668199350790566147434715680795794836550655953739151266955222814438679951949764819375799439667893983607021231899876739280098024772711307997906656365568922622575333816027710353208119943003189700856579244943652085496177706414030861260706831877626164998816205923895926042981036018115503833185635256522026435954752074750157014163872371608448886235721383177990675903283116757672466396315530353793614924731448389459409965411942335228946489673408855872685427694959145528078481120618691593107044804181391131645439162769505282244329632912784009511220835298339085245255280288897321762889822491770420985759616608657275259158757430674398787186777055333064998944536676174017048181333436940668805283644468437457607541264489729725752824138361795860748313740480563966901693666032366072156514731818125974158474858382966927834579504505104563792092978680462167461806891904275919587941806877530466138766801842553200691779877480140332451625764817803915738084736548597471267954114222589673382564999851428994709889291029856515867753423311236512999980412537716056444465623426084163957232602771970621932048769254728793256727252550760302906937970958259639685051312588945434684784074546553215968201642027112034241075551032903106748701721911284714927009276491584886839446574859122551305876860002024570709872027624965101148196103843255654947853041321547153511548377105817104679579803262948618253125232373804627321805164607254688631802704607279749489830865873915206765716633027941029767284274059487888087179834237621441808800717853492210749738884844345322267265778698507533274811484203312785433831697454269303758071586454800902534286264494989975351809606747099875768372634644841643762736665340571757146318801968108009706724761380705462658183127656881514769158779796838452856214019564283403444284602686159071776717472443080512043963173461955615774335917615358826217969957302583934833600968823664587789973010334381797445329264790565124485422599500264322255747845774081903001832845435300077635840475384348610341689378008125506181818430504941715537974686592504862284764330775160148413852642258080466178381337609919601843702758241894708218361438648858404287736471264754107379128253482617755860079589664284420362469554243876420004753535429723159723936646472935391417020895785679066675138318831406323350856400855931588152596626912151850694654537206008630693795717996056176666669872400083862987686697101152810410411927899184320995850995496310269833370911906829822249011078349689465334575707637682620670028370103494514276819385246074895616643434724781497179958673656026098640764957517613726897725286209388204239504918459461245792665535384957644062737757245203757199134180182691863946605406252329880171809106472337040641931592925357060811199751209098414396102256522710669651248174096499365109415704512129652748630320266566227278918105359864600820045461867614507593810117871973015659290860209831684431792398112703467496200742366957104047011711974528522343307720894717755149449169749795416881399831221838090268564463146447651258139464958524671310112285993870647553160982201806152499581556762767863255527320452158571361345186525037022914650911917482310436283776163260727561556901944658296675000791426564238963366615031409630673669244236847755095042402847586506309880748127528509590033946030793614287896977164443527302957229582380357130225835822387318321916803050949099349861754450226548561222653144434946985881064729647094929535492702212124029356064031095785686417823354387793292560967011609612066291601203827039838163629387947252988493638439231354628135890429437144724487495002306698013066842214183319375174661483559240192968496130867203868975291578866526702977987858233336543407735253738533782655416277425015359861385645119675289344806528206445498970128761419864100229871861853958163620979488472470798686695495369213979441170451856098721838228576805295758535528919356574693406700740009612133696417653749179957193181173102763911450174163231829957175417546343319323985082700036880341856953446635462002127530833869614014657231030042061541867401370430805986384491355196432151762275787131577191617614555380424729901785691285990062612488002388613371788117725939615451111722309533250920108596373643903821236784163984163886528446456969391560348283975056339432055199499148164987997778120731907558016273107620220846191242445916108198544979396434816528352940539656570580760001491664449341545482625416894110628553585881868943874646806270333085401266600405980463181627772698046785369806865188722756081594774816267997628152412319091266868948708000652993125327572701692605187920026918373631933061291971851546876269793116232826463279024952940467182101842258568080694365969697518886236791176383438768795043930611102343451781261868328081843714511492365443230540022531633677041285737496997311494835520318583095808839850388047690609605731345690596653086402085087546440466484966731227134669636351130969597371266650478688114337231085215112855480892703544798016772605895251830605712210582721810769760830664541732965615131572623547381681405735962057640969973896043875986852910304106884245730963454149388319192791110415370483624227142696863362639407040157986604846151693303651682804599421042683127118210251703584303756743742380537051487710079513139919937010863502984863668154432739147627211857037008320520038912524137240927882762757189750882591503192313864683046372894309488951220976166942011782404235467837221681417009570746329355395337922109107286974509392767295863412234489563165388055873516057080534141058848742809333704392188818893962560844746099168672488268460458562467904999339414463936867216279235428275751725849080201443232314976890801090610815447245771721671912262573825016467579380579083100920118713454094220856350382623986565883814499504282655754744608997716645759572308515801469254495255046930515499826479293935382811043006056555750612965194249150008517866482493358436428720753622724897158732969439805304932792045153447992279278597073403539828226552789564285495087194971763214681234489927001466552561075894349010625100679224706720263365780997752515758626807916042406799091695897303337335442024108782145716096794217358813244710913796478590928843431800838042499579146890860952431903716142222431584468626847135804148756278508271320657939704055881788471484356726870637352636400318719201354631197522749164085616495677667571846549648852264278289876299288492169950890809736682104302278427528549956469832451056985315482440892443495136468002298113752359243224729473197547408775526351786259558627613929056065577996948384288594047057992325375352816112100944124239254393879118325301137132433955564423334464054041380011195614603846578687945952574198091464795073840084579309069436822047805111531081057172203328578780540165235778169303843327824255587675205398791552425870359294019130269259578824784037120126156243311120909819254495274387118559627962303909526120393792009789937632287218005274175179217866176584011044679710513673896730732302871937932594923233985824713274896015909590328631027915919170815731292346106888885514957420543931222739416681958180906976597166248362466974615954252513563524258878156588048128874936379011762759523355879095407636735275565221512366403778618310877415236049597489461208573134103197373910248960236278852157941070432176688887016713819339625890869275913371035066016251509035950287353721428476973682891334145987831267105120399750572715999195833401325696741582857676036774834767307974224436416149204096897149271981111845825669033145207404678048421758620546853560342528788919462065769965110343861676827752717990000207477235095477249341994568763388016928719039651077557554325860363032651086878882995064903386282322490240604567704493604083390222578007267864684943277673918166402388640286526953561167293845160367749490568791882474768688532054825466681770724512461272224785232654146715943463809883725252145366118658402301303564110901384891833264919040610261510982362383361005712416363505581820909130327667748514965573722165636641391172072101671511896606945929662112831752373523703923756342486390078509414294493206826748388522774885022627340234080094052193557366503191027698758768240214933442531909908959345127669483321169277464908823915422549186318953960455613644502613531125937569688058059065256795527087045983035595491573776007015269027920240338769233398253628424811352134815383409079065959116612795251449943350275154026617344110226331405917114055561680473954220937188407157085155918647280484955505224874230664773563308443284804613057805211666080531083373516506731821435785633283685781926354059764413958745752509248529530161969140793774441944289848294097200947306292475974836421311979750262757542530707562197649648748352475306588103395930772254352644839683958190053114824841585776261138557083012081153958695744038888915703068348954983041366675818085187505732871092946186317855784351360712461727403929881103919248651123551195968822065485588051205799257517063467405457446718674709924494426461793101235322549320194730565187149086290985430335582968602617774610010944517594230865510091098354700350117087583955873265931626462186867280510684316668565723795012166526996976732871294467362950772391636196711537446795009118784163462875584169145409745458678545815104429534061858636325158905722919647806067218693492481179628096296282138502928895709539680670253421756950571324052026176999287794030972681132169631345649174555498834963808815025432506735835582235966523221239286011922340352166015140687956683656617268110147860635893999203191790424298543019386183653404896875306147190659664118408185633465303561591793892853783999990922167615674133834148819158560388925693863386289977189735628255846102875568194526440605893243930330358867249208789173487990774161331548679631381026109052044701283630715253032695206168602461517022507639561126570682112543875915295680058444689171817953421146532855728581739201733701564206143122826024436151698205956822590667478020373224319673700326452992769338347603383075295354434840322780080790970088178983182075502301594986372007928241471305951140713016736414950750177928290090541727788050269037836990904848551493446902655343134676701289080036799285916202208996935951516696510631697473676948445106309964816363634393250893667770379391435171608415008030499129913950859125439928889339435588362981835392529722553329369285839285365454514080501808117475631019077356876999550968854610016711956354631036844849065756248312673923216826731279810600305466970105409470802179541688736112263475072381940234299574442822955912628001719930880808430674285986028715129617016358275898839139340518140454185631419128292252224478616910720193498373881617540064361594457281782791911547311086009573680361581730074012524281069557439565985465499752691049088331997537493748560610187919020873790458905399674252052603591259707127758295901411890435444614081295331923314644055384473105151963120120752868270595618959679089949165935544840084468846220251477444553967907570327453918839890607222833876211783245017382006861771408961232108173456254368424181246577883203524220582060412451560216468317504229484958988075324282432133916655475012829782384264080457848035529332416067223761261338125362320334271518474123304791856208242927020762520277324909697856747790144409401468717457056306792214896217304341743741740592458492606043947261681797306200032545613950442938879883589381689002521074374803056846791096130691552514035155406786544858367448301563154765162812736715437953478533972147592282277364543822861849498817526580032279807180418103878622581176175704353875148527808226076495299119499912992244969904163743538320494365185999499620827011679029378435812098826545749723926595924843139601674247969301470628729887436440402063451790602686066167608096678665706025026867362195832245564490628166662102348904818806229358550776787455730236039606514210306003042432831977746640337359846687744742147462472536148410458839979406627579989169416201083757900121330440018144925280733496914285584700475469510203092214848646220012342697400595519108282023640599433692834427353413175784616980336703479163549115308389094881547477595474940600433421743767925507332242852957881547254264298497332221131014964883484664531955085510367416633364304640904542022667000547082410494800388202203995470286856335721592715087773484439198719841530164791847550847990103385463210465192927187500179371903222915329482373644074440797926440752493202319361291013257855791513555952367421878663400076480357818688328865923620763865431737033857236782051369762826538172082758226165852391415997936613769039258134330795730426947271208767069166255801617289600705033189794627541206644978556835916933351780083975393164672153005243588195382431219751494468345270466991067337921560770122363173198307092444317461709024429768380502445011895847757147899155631591471341642899934416319786126679373232730531131951189753123217934145599303029909583059135774116824216140641463246565735776898412843470169035067172106695926487042245079995985168298476388373675273503889543864804837228283493067303318597817362686635558092859948238990657116791239129489820250165149827453600374640774288952633000172913941705929284376127458062243743335087475909919543763260128579983045416451186673033223086744579799284122754045157231599014713128718885888830968529705252734451217992919506873955484727988632385673979475513141828147980667610482886653074839051346706714985840898924636779558595857054448042056821510116878549578063536394989990815511763066580652448864377258704904132558602244451149895578432066349037140923108494938222142375117099715155548116061533457805867493482260904288391196996727377867318512074436412635971799281004681603084784192695560736058187708358421540139961603454090078788235691146969552631271473074621620635446709408116760119763695785490272626100900361905416557878992221073677706128579766487502125917499071635110065259566817332594378731872927753268946450842649280302070258097995465857328810707814439027989593669322299909213394034539002766407188770815118807474079906027598067276172774818525228555624557354234775963297224368419543755394434848371981340297834342046655980279053753646032187517118955235557453571553786950868555967191598102485698517553279449626616400096787600175997980459305258355698519491522084412921613622052554904408700422871109104112549783804292774474570009539449510631929215427958264567837795699071320004482775591433352996955261673655435170258290646734223594326544536119470319116266764182205955850504567729883971060106567670178053401922947828265520436008353415941438851916143961032591273799510793230877155774879077955112306640191835214792467434338566027433008224314772677807769054269552731683234123096768014669269629619051656662770516818972661921785341460480565634567894616114868515397566917688856990322661303968286243553906582536324010730180732944647085435643074196123636797778122626262905927139209944679471776434157291577381855902152823270675574736732980701572568340053694395418171340408336387615142929841485352840385073261476680578323397001510465805720161288335723340178237494535180764084670401881993002559968415900645865369639034970657721995258974311223917961445028781430358314600055405286729253959960877837489984796929331001999184421707571431151456830799611458163485250937045542653873153400621688006259668075428420311940977158144188250561361047340683649468478446893460148699613977762165223428491920728102894372438258899771650804310829012293306677221570838624379563098358535950450916655793288570791607028888370973846381958076098167599968726351888213101432853078517795229034156455727106867911148666458154529849620529661335516437996787040768419551003521291024879825439748984647802411076957038552827894848407016524720551702596298211312237290132129223126612320814652780492172495323309108259313426528854103942350392900429293280733572909910774339755838821768352368102094713968511434854907655779269673093827550064161087886430159678799636038337692857382213262150783388570431199782914378950237050902594478513786179529767398017443286594657329465795952260642579651224612323640345116759968369785222400121380586363354773503871838780331089497109887139598024704301181241167711941432668017286314195418078993464502104491558211234696740980676885600100572434198057408400987779497755650363802284411093275515566014084742488868390519419020188227269381960622151185774382124773154642192188838087686797966296961007551704339004253659889798548772862321384268328678674463619579043209150185463268689876271879704144933131462274286435939805612513460360632840434731800756197776305805081490863255958984116404805022715577164681679629832964772144375182317978550339796207455558659038602835366074631611195523128535163441650742508310847604490391931395942245393983299247816943847844910369274390171486934435449259238680287250551553160926616473988325319753387896734311674969915134072297808413323728525046185501861430286600435581022869842419441204074066152320683216150302704349416085464187337027193646681153763364857259455534179635986044049814940381376302676018234402084724362103295671875287543980380395518872634302819384026737228684289637450378170491115856337517632215600101996834018084819505315111537028446895467754819846987019037075638846317002545980385716051819218456507774192337383393159017927525448573837784549464647884597758394922629460939106121026916111811600480769134002216088137330404732095767175270184968541904673561579574469258612747728714539505746817618992912831717083552988685300495663109175624624710858828223380131131029784464544744821222000270378832017212435882241826499418983401364976650371939326757941695635174601493084475232610702396533056798801182820686369194426332811710589173729675987039904285525252476857820349811895587214538010275395587971792874799779833582731383908924352536158664668862949604161240830132559940776318985594692321825899781936897121170728232716594581206136054959187360636452468138602267988599001782334507887525310088202848865676143544487717206901417087892008303304324527421078150714049276665773924379072539670552936959283966821973659678894821629106011910761031945644606375901824916319840283222030419892105258112485800844842761075742545768180468094573461974349488121708798350591106807311510015655821324828980669236999643549399900795341820385404160541910163837669309954176130561759056440419427379737236272301690694316836716811799172758985803445457760129866950114789795607332032613185730168012698884985874503664424006315066187119117362399783530371321138964749865476788152566034129219667479740576776941531517932798080293940006527877585702675106090293364031556713072435885432003395217396401468421570443976649868211945173989420531729347193859321203870748781829062367387719657075323652390355169841273986143344451835607831451194461900052068295108248830058262796834901940340040251834964753257138632487254712233940299325900166476691198528628189328098693569045050594232161048277515564830073984951424098151205008560288805503410810989721270161626066544706760745174796846230375128559263877214136683845350025310277463918811407046675640712948418146629830162125816533866047255910508289471085460611054429759104727584121926509556549439232821519367805687819861435223597443422211481169436602220776606837694274373883650160173422658422199576305251571303066321131339419017747556633277991353309939399791116180979799918566081174435152815210603047411529925846418619960160696859607761038963299475826200214576679217254808899253975588234251081485777406035257734032268706442527722040625725760844973280095765242602699637177330444856384432132799266592551615802915723994818209655551219044852063916357677181023122950845808612049802447740772125734403749229677378446298727108913021915292257730448186798508767527857837100178653603127956189858984319180553108353185384527902438998535774135236640501901875558417654264037926554691575782363398981379326173009053804776221523279269150431926713629067425157954336705688085871759151689956265846437345866938407376647035924817554837667137397650778466293302289689518329499459516544465179102696295445874051476608645637584492604172707969187906339413300645393098465535630974059525075831628749837430828697668640461363069121142742375557163438943342028519816941044388427559642346240111577419683530227228897760961791926536089154283797549004141137608955450027369771721826345272790816200356776661194896654150669737263482969309773030776273224326550620467172390629643842342900063742917455457910778681256272636716710475186829273262590160788392477009909642459993859221860127666140474874423184559450337677222430639446009991625897142929420472129970869375601796437755179058314687112481451269873293941657088525569412709917903943836735188057211863316126574799016759728090893344028781739480141068670462387869567224831383933019936501517681290095819365944286375986853066826629258938850343626863951818230201700034344155275501858204497260623088671303993003751035853362950100360172747100568255977926245194212574678372956693212047570548210345596576549410724934603967385053419113667677500248964325850626617628708146682465368778663720099644184503291688311547484052669082472773050700494373139294378260881193100537621338044712855900770634150397903129372043940929586128406365177356165589793864762854387215777565411031092664881600305523832673555094942982561632439624202255449245233428622010459936785290402477646308236275508706339769950973068183874135825078494358677890163845932675876234657484041993109969685746170079937841870709560179574391049665557232322444091296143414635448970326201279731544573011534611289801434459706475151285817468744410446715470019546259689543157943694093009493432208663493189941029185815979194216966474032850610055108666357009912941021486511265362774036909519816017318404558032423208277143258421359135110211336496936728544877964833091793920452411792264475932429663989175285087731004697710394679987544556249004211061141168267178458564109726883786289958677313099140502067028396958812737064377971895337193183352905256199113474871625200350632332569506092163671522796044051993085764576766853197276533153244422707070152906646243389832329991113583155649876523023303237002178511896354674523302792981422281532495016270886294289308713784992071480283437883719012654119791826358008434206692288706247383281613879993927515648852417530699207829810398520671732008715217667420912072251118828920162872608827161835099946402080167455743253715013126245339756929679315064820989782119559262763522875720954208736901513205393544416085953026927899464175996672455754122116849595384319615145174392370025811975854718676392453858139457761893119568982507136440169753266409998551971827696357859948209875888040582547259346144462027261630178796844369408996621219677591653633855263626736017438942327018284824252452865776225174570299334929646818757329834452628092927820773387212578772056512200566883683071062008801672322075150258059785846776931963407808672025442398099651742675302824353155879765776073102069498538613537536152942126073347809674888333955181968831397436487108138720425676189247181903753418810993633582403752417781067674961200989393128398863720569637428370569921299432327225173180789407766250730505268544290647605951371086133818825123286771003338651605004590586650481431306868483618372847424190979998571467738263262263877604671609381442517015309378132231087625175229297471817105079940936467269581422497088404417929874351138459445686564854658006713089909559583271122480728684728691767031317760278825828454636114186508665754962253334732644278913992809303413255917731675621956696616163612518555852985888940384868303528708115885255693301641976749991767814137714655656985445486221002473792944368610973146102027909964002605436341319892218315564868338150291748591139600785752329575535480387728967436713154464097163440834167889611386181470317685994010482512632417237210882191346279622983280834237555044864105748051808560691169989532110697645695737775637477187660350637570257899041150573144429606095525646084818204643781616910545215853210869350403828702691965665907307320205629048890941352142427529621188553949591009571187608934365277819806906298469272990363995597341579783573280154716531439281819565292933163873414759433963604248198618053972612510148714902081578578611483881013044393067175684783248489867382819061671836856134809002612130043922685818598612921271579245248388820117758746284630010793970467006154242227645831214944312846718310390106734128396974810582231435872099268907755882234671345512269321192783701876892549400626551839173890830806500783086734052495260465005375883107890467654651176767111927888926752188471170647422997742943304042766587790948300389267444908654611804722899893560721090340763068079202517390585568776142852747215395106919378129146686316838543064444578173647309875628698956802066214945467306445330450323135995880347877490302849101034174391782508895112451575126464052832021619273346831263231517405530838179644958655886409135409472619991229435199515305043659741459749765862686609323896627532633885815073223265848172303883505919630837808453232534905527895329584763914132237342773737871003703923026493075962354874267076279040156412020792471649740536487552620056860608844814601146752301911523071980683332503170245448590337427291891741074925580325849477218061454399771189803057680045309695678376540378827508053184299917338574217554704057672512680960024649602311747655544833974913856756637868182695249330258867793770287074388495320689910122399343875866334619591317600499007229570316279064746063211372159770971416461978581525226354301000968159718617773055057937672483118468525211510303178102822983562884766738228812687550940211208701635124946618532909377220470007530661764625205071531263888531657041480204926084589723519092775355267194957024845585454056280736846032907848148781806004786066151346073977286822736933052535966370791944817442649750382431865586200193729968978937929845538671697752724796711705986926722940488683864879971334087110918961652451155581966867804042908937669265966211118716783712997652395972518301109458387008250660540118820987718724698014542588299953535343831722758251897085555739807604134219990010799098576388592974508133437959944363328197232377122343792394321502569429900158710052042539131669056176698161150821040440056728036785675110973169073708208971951551461176308290703678430274257825150319187794996685095983748692582198277464938746346885923613823354667707106440046347466253346485914849870399930301163898796622329666415526958213307160007557238988693071076887593607275347243526618189881697166841969601238987428487228284858139472799828607704041164796970007125652657460888848653728219382468356170702189846700783898241638724914117335478150979054859896088266650096753522339094601512605415283789994287323345224264874235363589136545877787410192107149420499145839387437867915508009417066240917298260051858251602779398018166835393169164065803710096070923026812911687776430632981846387126041177750711308889396441560530226151413375288339529145666596794651818282758561086739867076207167310607590843089473822057555027723207175116310843742007553798225308567898884330606723915712071389879320986362277955453655534314626237287823284603363284684046487059151195047611624587292381597332325818793109215646966691427561473801705397382479902111835378608638116800749204231645982680806106939607929895085970208543018135671724137183534983034691226579120270047425569329752419998145695653971124902990879527386168003271761917945339676580120530268876257938602384568529071539483385564881674954699073786512874635031598938170393266130562946784000569968810342388183866503641851751062368449508253391357049570499313322321169505932837045012577251556830483162764938981134986128217328381961210990061967807149515190593887724418714388636674257933207563174144390429166456074278588464745581693906774306732403588442838729573178485577497838362374582779749316232250810039175214284374855478781277715918666720772160432518478310805494697950255120476220510091820954126671226196278648819613658432188915075029447931845010496887843879075098149348659827239460958738994930667158051053867655852684247660203213500990683605184326009137437470227373276815055318092707436254849504615712810480210835470304014776817647469024718244538666010166872993376487485400611712181407827336320405132048385882883781474343520862979089680442147781134983393738376829448634298655543172518460195468921774235344339000601812445747007568755535916538149673298584893840219265568498512259693241386207306438130920656848766673463925270021436328043089671430791826939229624039168488418904513113851917371424170691359559673548372984710131827173805210229773591935779918248287376852440055070644854804206241074663172283856972059463669721916729189146705966631644780764024594960126088642809348981982827215604361447740972666340169394462612095613241627069335996387485740076235110097022745522473505988650495602323898039515492078396115140760975051888161590874291866358947977581607923799900558089129746343800818680224891552962287157912916959559746694645385276686418155371510358645582181533639888537674197657956353303323118514893499684493892324018019449092678957777479958517254679441508760892400465305194380929915363383981862227428917122263594216889288220764671817638429402691625400608069727381442550199728911365366566235576184259065789892453335694163724430416162200069988344299719850213620003894890059782097839750233231607910637044089302700625296432364072051463707829499274175231275448587476729234300106225469632631306635605131080958565135577636146937504426713535982585897618637395544721222140509437857557858945244613061426544955092964671928169249108764826369598559503252236917617093681198566997336078230477309429957521690621232140990525859713121658666404729703336635341441063386091144963336134389106140042239462587006958029055021239930934641592033851491478829006425538338838614202238753073504215199877290437119208324470034482345919684978469202872184343125564511320474745826237652801553727066823614877306724066773538123559068287592689942656429577239978748067356390486865566902441084428582534219409415194188612593473746102182981841149108516855627989416187551824145041107285592219612980379133970203957661185481644753814690093158970842247373449332078669661319546881127343795471967687995956796727405233869506890200601571761673860808499130895027012278783370574635894242850971657124592968213851058538459242850990239100733069896851210400514571504189483751602170896310078319300981609853726132084383667640883160953820756342493408177241863751509682537274401810167312994951258278100980679279309584524671956457488741656786442857671530426562263053343972420234632650792294017095232682014280566503925283014837467448707634362256368707626944895852481695961205584981187561516285539647857940100208435451902901875456485788012420532091676456775064972680139249516096560925021054479571874969789371510698800065198860987222607434093280324128459320684266220257653448951560840680320288757512852466122085707088299923644552772157366639443011945760549334420244551665507099484620676941944629340014926932250139331068812082226003626290080624118868434419407047820520002234391889139728440930009965437267453306683988772561236073059210770537949884809564684404175513945978897092083286148584225647631351047984971492357423896019077153381285568889071120554779724733916824495675800414140167914222196683681263563933357157976292316814748196959240197307890942307483458579128969986323843549622307062064251441057361952796449111122491496473547570393998133204418457389726073769000061070926932622035419662548236537220653434697106675126656356054051111446187588621002915617299935005532504982851682303012828943476795702571221113746394974466391041983758915787194632798421076724858271841920157544846387775319651321317542368123621523356046108275153880017884738487404021171122609906098691274388227440060287058965507799154333490503977691646159428546634034060939701358307722020190638570465236942610179176312561710912195954051586362261082296069668735268017179968831949038185035929501184462357760669145536427189988103384252452690435166860307195880400547357487554206087582840538688047650265734698454123581507195788034586768638216183750539675711036707551063439743327498543081083886184540840267615279472793217474737224860411272960830803640480717568132628707319901437010266000562047453251874617666863544714115076880687400764499813023451061932836552002630866009507988119381079232972570053113498697009361818453548890758419275864845393142301408875994868190685090126275070438996818695696549784813910559717482850396024234732530658332067913024816138535682801375557624249597238395899248073713398839572429612821576496722418416791522541154598002177408356575755477234346767980426432390599551689998419740338215228407121166478993703217171013791035693847468664931520210184582738464729093760316119762794086414773080052638021876176865179463121242488303954594525255635093504028239672737624259044522348163185249987996324936257289658521564829069943960587394909043660535761707852224747590677788867763046810263830879623601579168645346504925197416609682253920301774958595968448817067688189505459629612668162660048472711278405900444621316978807336060782011471424140311856886291604274070882444334963730406433377384563021986883713960667127907038087416930209707545104118623341320024127971990372512480612400086167417736853036569139501248978857539095751617275581995822597694841819584261786653681134484719745389662789730514119002264239748768555787101603832674306967717730190136276040840533227736804344577176867887324821571298935183515602577211722245986574517989319547924921027715268505038117962284143992330873120063601643234096393400217909912704277113450881050089724867486562037215997398797762474947610221100901250503976189707716936814467763565894892575931491130900428037970418192799878706596229806554470869888710407188745147816150860624540646999165042804530838242188278460645381340566466369054904096710123464341047329634138031795104600817315425984362854506354374701109659039657337761906589065982101074421802436927312136571458702450009138947498599105711965375113974198177361914059272744008380060981529855423399100919201460162035270433578860411454855356268887753206629910506926288505605140630363399210651603891481683798818635817382095647425727772108821898731232178518081424827400527688337385452520392119238141986759434973317027822176300929433717901705163312708301295385509905969121772433653633767786739276167126541308778113296990009213174615086501426016436550682447053961960317049486715012803536996872165191512659393192968081756805710045899215316236731898461525842693824189870642739354247497348046710354361780606440162027707701116797342808759709316097082247051807640959777008799622633472568985582227959582964586344434937237258330425619505254239601257360243365056131257644947982193203020749228468793221226696294634696756677772996276453625940479297929761991527150236594590935109847214567756324869199062328126249615671159264275766789268480845039711391351642351707634221234062968449155193286088082472635994708848525079762775154597252914738926203122805159210810217101980340030163018290340829010964100375655840414612071302257221304277508219792735441097114052305389569693403938258226608833277586407199988344667463427932736916392447315023981651715484733127760974767455048371748468791020282729671217418166456294067340619993226335358782528018708783924309079699338516550013054578341203620509626153917042607301292220747411840569053687465915009546246729484098897238138865138207957538319970259626574235982742095887370676176713955350480983668953115209835110463652970635739817423870402729756919988450986989637919028362144408892360578024357275143815544742284475071519854177278257832664091806384347820629035337878762056362050661597630476818824774240921046287537504057372265525228625556367659128877732460877603009560205796341359109982634302997115255437435596460523256224218171561087967429105276523545326857808938886260476932626908170144918274374912412491771989510596877367137983519740436219684859561466138401488703123917544899254086563581831838018090536258639811183530988855508651119543553257853693818943991206192023016113689397315083865322840824773265507891379118792713159569048759367390199989872003863209136772585379111386023241146383906307521920117883693122660306566955409099532181492565479738350870500868498612023951691694283512725288339246321069292445354434836867474902357287612568947764888063424934904202455422989685679745687305406188750175171008585203151466613873387168066438343091849730798981353449582593822669889790681838960994271719276570508871613628721967359128761532621855544856265304757450348057008427376454114235848064530413252254934904856469059205633123528637022645084137999998603707268532222512980515382920653157708355349567053579942412396392234655305983373538946414762116429899387482252385216421342398879302130780037108023138087784941312364812167676000918188906236818833721353933022973068125743493417769845735737119832146231242574005530172640842280557188063903523838226378353625025841779035281880542096865747455366881213810272563404338764591186969257672962239529121229906358964508006360138164323248321041059219226823492180953229051411180237431744984354349398485939202227558692178793124295093840264999519756689034033280439112624309011216323587348193902629437503948526858562201143948026613806056284169778254745515485778611887423548904510682780713165425816142436735815153053199582937269426277012304652914469949375395277483315133841593232117339865176778086283689186293639603309380761318229235093041076541872980577819166639579139627452619649584235871231997527390069873929111171847047867541964671275369221005919126489174214007599952034129374641000275308880232015101271800804767424619689159046095313404237755313479103523469579800129966609514927776719287403357293548797204286511973890971556400655051470713724919271871963312334358060722495083395408796461336792725459728068955621884311351269277603370420297570433671994782408242251152293550404277670038084071865182820832718331944574264681938066078413675739015863710107354188599702588838659401173729580866358587382137385440302614389257016831923925395748420393775321346080948307359465951151934772873014134861628481495803321346292350930046383961813260622844295612336943484884775951038511701514536361352253177992801145597997025308234227319390478871910492132460803718125886152797377602066567593365370453311974318010765250724927962243949243010618406653370020652381884282445036278469550622563507722826239303289395399967275279900173369731576407670662808557710078702670903541053093560422092162279324404423210776063660607397476793486892718364436316267906282289747298504650935502891397706191599972747869923622308020384741659053644592149813048565632880626471923722747082108201561126906236752078108886858121658897442177645948646839197145180377126540750384860243625185898073565901418182134102600830059842468802658803876464421136187604923508141857461021477436855819654581618906103810030627802078239678583261614280167020927343485533320427531409333624170581308943356659473583570892745212580456480894219847589484046804684928709137587840454306470317364424863787087579972849169404310074206678171771483457361604363619069259442235055671819782206133245629536293284308929167582604907608495722863785157842986872851072271547211995673377521365994094174509746160278069407675206363070225189014831459345450343667501604591431639423562172512119873930299603002468465144800239162360332340479932754301895892803328542464409529461267052204508928249430360026746947192009704214319011202341113415602895708429044475475294627995542540244251466989715448479894710378639424798282235377381872514365198813014151330155066197519755336537621009596256335417690556305079760929423778171303341794027381371428161768209185830830599621082956151513217068610615433498754951367173605520321682096336727464830306977192804373897867917738226324751831354200155725474366492318330817094462535419684888787879716903369816380182243389211798349557506136294819826566093061263304514808430645117080466015677157698808482149935077269436146248327115636291585504380721205021845724417112733477779960826105898749809723738961738449501010108572872865338320675658935934687302694350362894951591261093607014382229334990986396897526813943756504705599871400816766629146648731735297140046104033690392689951983453805183215071113298386127114672587437393167220249509876364157473304540731935065726114570631902139338628152842528554775897733535692852222472889363688473080723997064862413574364356115300022465705833206104320840629571427800183259015291050110572097138411220607226686282755823088464028082205453524275091868418446216866196183461677573952847514530066921548746889995139763486775752316512178089766536548481053283920574930375796398139191230628844708817550837369138243012450974373952939516386089369315199182340089560528522264383404834456602585001928849598375935207973871235242514694988629100794027375228424186916269216391929676244574694233620760673810718161143484197445959973937379560816382759586272954070556510760112526705874293962792550814366309731105137747352064866226412239219287184690760296218370892659366111254995731012031048183086858953060306492862014184290534553101756710208731719185181446412637216708216604378142922032651332370035211614199794436984005150241518114306979344467618724926407901177857103644176219415145830774327852041077116578751723309083497468104117714330508459309237280946825383194855802559898634865168721064582455444873430410912864032561734604648041890830068307919027719265388299632371826561412076719732849518973851771452842326607107157587332081331993842994135813581862886144275796179971953248984778643043454049449372919400424328984682742581578697627573365797916467696627891747394023379936179697131882118179050338044527337312063303842988879264151415592790680110786368533961618086047624842455514830069969272500546192395705743430419297484988941592677492373656309443624258773546042550918438713297231689729647886173841735017315682825412613270946521647700326296685233055208847906173394278505830102947850697777959702600249585706857435143957740426320199846765307586564362513345688616076403408497158583354409781846274468273842648560017151629710629864517106595657267623169804920154940901801756690821992421806430992451723017440635110498510362314281273398153866950995929403568859263515776936075070164226726737538313799779360449000793523960696420827963701035596794330471338996686853896277249917396413044963455304317472868241311271272007784140053896557363808257158557138508401135231000559097309860495666689187360787759142132765862848914161080552222198865861593856496237628498986116737753953894796998742837613578074983695737217737072655053418976411106588199275971305934372667265939895510191771779435968938144833122521619976301256737591145075042365016200371837608665574331890562652221230519576827743331964612853839602661415723364323184890472922282892042140753026419767613666517267196863383889159709938612794816449463196153426720814261324785917634682109080315803211954079899372304344647922043894848639259970768790234208756654153062406468721663441942571495026297398442558764268441465100966829025187507924532176162840882293343852519154930788393330135790891244165492018590297787265528966367680227557615372631631456358025165234833796792763642887280512493725739477747262218356935639683534038525190311115858198657852833368137220550938348447435290760711478717112543607225539370080128871991499273602351866569575609497953301025178762356282064184307384067155026008112689218574642451433425287943096538097552560823822827208134949724494884169819418689331499645353985564049533566559068084670337326621683768455128489583176794696003784361748549140988895907463431209257530575503904015978894836141687415938598921391258693685047163071041871586554474732711903592819250355869085261886158338255205928776776212174251492296252055242049504854700729089009635578291934839392071275511077154923670100221123942795548003561558876546752277818768188166008573176010985958790101390822370809194214601158114624301590396866530469329370984184077370582084818749176336577771136991639173805626216545951887007684602091082113105165896023361043326201596662257548453368279378127995067042558388189635348658448104154315290678003538413380941326930732811029446024495145105228105725527065302020296489326102930417830707656635709273575463805888680592652091148578259251444332985268186869433258995884962702292272750612880053678706943235098779807302169471710319336061848122671809796950492706357124981159783292516005652017559557848570312255527651141521438613084904580850749229988824817748732675212912358462115274084624873665185025558005995645493555578154758086180565446375726706790851125602711405842362326651377319111121078204435705239919785772172835823419525118013980499237429621745560361243323098406001120900133455701648881991775324722626948176390295654978552563532267774218857368100205584800809020779084779045476737260648456768492055985420237766507781386600264153988107178067108324385083660971561367912838917510181856660642659666154348699031349367266370798741120130555497262150027950025505433968638443553436444213247669731766579661306869185405494405463250423616114938400919373536588801357454165072535055356712403960032079511974034547439314064237914740575921038184543708205934278510529037152763530023154280092345991321848111512053783795156889281874203716499021919151115319179674646347893131686883821822372366194858309415025985615698867676713057827942806910752875600422698391318200451803443373990395041188145538557865358862468208808077215956323678769944679784411876130528496031296408602510301400543725400103946366493272367877989174589321100455217468713716457340625495475258134919086132353598833348824537684610760061306156064577986336894694411316965334447905172620668830927235066738721717040145296550112621518283706768186844490729168891979615745653485582711054543270867139582982119691438163426060883816425965098888684431747080408623580189669047781859795339772712326147176199699237764505648607814228810119479492713485971530705818076054466729920458914020952267925356295660882850691228902759354533543614508309388278671818997134863533008913415684530348324163990262373073622349761743297194872733593976003904996989721513403627574520745938308847489802160583038508571549317818643798220065545190298707084122079174388707048897614111094349169399142048519134886482358916260463770104227539244726187992852601996474023822873730800770536407978676673941115260001440724527115170881924943722043155517716249746376668786836434824589991414808342193363663081419927442862824434918253388312661540012174625053136883503618696983661861843042281604248310663480263625170329061490619185142953059547749883907788237755163504364044384067226094092697170616971568743651006061589358777933264646173086878472215178487394344778719615671795467295881120008333772420947604914716466875181998846685643502256892065520643485409559925724546627403310036083355217760440379873968643923263907855596562891010441454429825475756384556967468098706415386235046353502452863861456723741742330313986844714220680974580485597259457428176179172376175422153040524389892906758457157211126647056323463626706183697948705772769125538990930836854166366028537457861013308994390512648804877777258058240582689936953778521602304513603757266545420844370239533258922041777221282099094375543664851655936630168294306573277665751825559234860772274501625775157616699907025447120213535813357091430765780715015079600011765542127808124851124652918478288845817767239814247205225122376414239679284918043700416967584980694984276322953966461529611798386181784738902709131612234424295012008280844235718903561404358959378918990318116097363225622996197018585861965690210727031421308107900402614439459327902907741603851028584635576059039101134790233379526316196165489698023795587884310596423784741654707260948827960249135543587518959890539042300756692811885006955588773804381453921798734962325874378918638723125742953936840296974718563320909790359621755412679307608082831551252472808821662017263678339729584725607800594370697756943608567304786735764789336428676820643361769909544337690477687346648818986345881920741347973550373050439115807508420430380260733425127567876385744713869717535727251847347809561482374030236028572451718372480859061981267703848046089275064573386695693970263831627428819810376989818493461535513609033457733222603176141896230476797123592296330712225860673205501658968287209822579198242329447429265876748969605109452573100689208868596450892501501656842213020036623498492751077522891914193252769760749350940176688203013074302927708710341721053098767772210215802557637857071621926902099146313417430450262028355046051115131855254799441195888135251040847876629544674377183013143186756497626786426162478141633275325790201440243518616738040439502336499417186863342489896333387682681128980164306044512827292005925217032469182186017625450321157322003423282252489488372604551237053766024328693889529456172840352668280854056514596750549113621772671261981925906569182781926545433398782680977877333502039548459410237989137907024224301252203236368936385924915678753434744855523733233462018457898477734853328674136526517260532173662960606536546446194198053596925450668816704516900018773551959039286307368154419683937306151018400341238124173218563810049802468115303992611659283648678900969276275048837071288879099109270508801112116666699772740166761804117871424525613543804638008203000169976447028241952527082649230172332070653621359771874824842259972747142368657399069862624815513275684767026313187633208409927548858796460418865773893152944818073193304526639477571192339806050841184525163022204148261673214930589083016562922321619332029581781229728840650428144701202367493658356666518502668492615906544288142058665579971668393953827585337872873077167711914698833803058344281334030257102561971843732994590846364839299627718661801338172047949268936052077627287704474973915563056729488849105588796605241782411079132619403536769089692261077992498069844657692810930380558392317657613365087155706450406536150189513668993759962705309223834358050414846911787239032012514915930690587666710318409403593084409026918389958057435474791526342673987048020590125271171680404005210017243975648524501078697080582923871125395520321031101409006823947478993633304259086435702678985000887021355479693326305136284287925686870214868271574991970036503475377756204459285376690829928144456686786559704499251830509669457367948823203488685371792685696965416610266547875320145333794037597582421477420673553163805551701941649447585869721172832233640265991107925926112361789143952852776391011556538464642667960107285578541656252935425653317099238572721248242662162749455109718039571682767347533985135189763695866285386805469851281340461223361804323720498331255806241500452958963388354984502442036287264323598178681997731075845764179991370889454342182826249934625786294570572741807702472325768045730402964114545576804105476041490470573519889743989449070978201195160215755309910336765542880641751963351353879977302382027269125215633098181204731553274417156118690214045102444765783294487998336549914010691841988280001543965433153656778304368447873991570715022782760138943591906036470261953909779025039417484533830154739999078318622609599571385812715273180185601340973088574686206854102111207281519801190633536103897915277744032670096163717009772856340314705038920136860735402851057789171673302422327083729478995423669217851262980077687984696659639254731972641283648436583657856726796046043367766659575260704890094392708088315698069642162379672235551269060887490661854175988423328385015899916895371571788503307769285099956372374654887528784825883008784303114535547160958895359155409688184844695131148912941425521443638127901061287486514296261169318191026157329820306473947799937299282099191602094443910507705152073964639440206442023231848684371033682359374021448446687923438197738372472257590379442149898614460433877031203376009722164218207654453500530379279596006312883741465254334499385284675799509136389303849496009682177784868956923702032480786516475741125311774770184328487781877512727493268095477037902327332003354324719381783648114076262089752640965080992918251752843564041259104920853796212720871338816036138083437839246355635227448570013569939410603803647699702895830314153850257438044308822038821108537518815364948587352177209489206676197683880117782665972472425501053825234846928259242168300486791457473101889634502915794857992123589322397986348567533867826225807545336835527313277243033350769651175328638906172263493218364720548981530532807315180416147613741059954011732913489211354721048475690819485157921262401511186420363067312969213109262547256793320121900472527120477992236473054464018103615858766780441892198261428121519848304614924051563544090148186798936703861229306671863572909863088710405492364327884042457358461593679094086116817100167762751815422039480328556258744633788904117393054173597660086416025267243707128683350225485095911047487978984429782150258907564053123893516582459294159666063482898399753443504908534952511311718669966554230450713975621115040161056349965486469284047514550726217285182161664916788011750693545801520203074210022734429418210132317882716635657908661195388812363657977401749626131670516905258228908970702488495137859565290761557674013470187232399445633316151722235452674143276901237537099779018041432287458925472255910880701859487910919318907179691452640635035467765674584319331359236036082719585908580547877496375224517783554012336557441715870186872649809743611405478716642739087199430907499277499038537904207923613291476887984503717728464975347061562431117547465279769275282078730365938225553886664876956539814257364029655138310728458578954109191515486510143302703774212472101391462092572407055715277101738101231232735938518441392812278938095447546284900262068807636667064029685073860493394470213715908406178957447027915506177745287685378878694354254182230244277559847251031608804688039629083392313289859011865596093956760261685101745232804550360360098407646264117233184200166252328245240769025326712580019823666503406709296545070126175648973347359945614537938319277268092145795532669718917081112503445463705466912736573572108124329271581103296759005517433170357594369459574536928239424891695308453136557079383951462745585590823682679874132844321155084527670939066594740047090583202739973744741040943507257490145624039039334731497419151293330915279467442248665579904173373663696048779041816129439680183472572984301696418133922343106780510201167471061064846728893998017548389905295155152170404054271007563678073287305787461842367877809285237181047007815237810338558015384205089320065819958587436164597352513100041341846777427180907790741613350569374480134929635942736554762696341775715327817068612674985910485603143905637958832682562042024616378621949865448276791679485428381829017609455159545868503767981709519857078406612432557116884944440341096506034184226468474843845084929991201256376546757143491592373887248244461485131660260982602363889303352291874706428281442848182760718348760164766353927661100635426157849592853241320370131096700367945643376925490580791979156959846584768961831312630083820569435054388542642280609406907930641642082407547123664974067053666903139262357897159146408029026148863726303994678220779973007030741503207443011754364297586807381134134582637198858899977348794588700231856687403428343535119953525348526243428731327283034335042722921813387700356932724502385276567386343830599058914039610819933758662976634679414553403983506428446386546052886499095460908961089319771621072696174427326887865962264307598112183480060650007044506663879474811250452435931662778756136531448158766523912487619182263882800753746890369884300117937866743332369365244984642978719830706042908091409540469237930434068068385339252913255013161373869954985791141281252957498806310152996934072566371730471885099791135570462972061096745962418164647097022339575382613818936098334228815661649875678115429546141845964665534165669030087401744782670835157477169615263995622755329987254408733025787075942031361759381570582922329222988791958800844195330491386384721747795892112193529761986391242588856480417413319265614263839067212114689581848317027630044346359606864375501798382887084251002764524766153213813399221639704932161371168996084395745584003544211944569259512366038227795954430763001633633123696788023795736953507855353095516502005582617040827648391575069419908732403778300854724558362897489952111470946625379018207226986493396201979087722904061302530860992988258787649259322221421199138619116967032801375807695819272030838186490389970947328403791366093444163606473369176137166146469395113847373253103793219170412756038182403031894189025554880676241657327841752370358031686586099027908023208628303092908402969828250055172574507128469827044740518237793208062986104488197503861714615043183144648072652593692939285199591764853482407769264748111542528595052512132548963856110634472232296676098217152746496168844387670897056459033312042360007836132595598802959245759478102185253394403482192253456560071951771256988656956199702932347511372291248846773202612067152498750722638267153210962788482169235345751483219163294310297872322559888913680835096827847210665057625432944161906785951518735207468549858531394668055040655365027756968587986000758751045244284549338306357195577210449420560169016579934973091353026044225583627072602804512506382111324486953172651289025649834529328171155063894503078886902446925478740002206382377584016896891222520419405318339068343824928537311253262511621969172932954292857573515601917770163831943999590329815842493058008601255340948601143823337801643333701593977355612107507899094021815977721337466419121782146674630874953540107373120655067212989548219995274035717645916761256147417683316894295378061589412092567146481587534764469392828796916197354484853185831526214498155358327453201989828686878939444546913086892415032041397999975866926418658847555571837209231894492657104877686612431859218039199643067605381625564477774694393415978426878275716503334312855524911295414371609719539284869360926021613497891940129681574212653480531847205654343774759517575116906578915117033616396083678536225858912430343185112141413348898373155942499902593172614346573139557413491832535788012114835836998591751980223588710138489278773989948133513598177167993800966088230681223369435272783641895351595706505113986081199839681458829952695141928839678887794829696451072847416324309655446655326793145068992691714142948029703563981424891289322957025261261896496753774755383243591067200362889386145580581884882203524651750451356022159159290076435401587127957673526716153224352993942592719963557801776144179589595821830550129776220396850538973967217816413460938823357612728736129060453239960392623636707993240643797945684200440705122789026437848171571658059162234737064743044839249964691388413427624855737839854668630760336891045900213025530371099681886776048756284349226128394253291456875019539096336754600213715109473993297101335275324325161939176552173686625984359072329506967664939452451658017130905163702027243301431162760198600105320541534742400646317899320491462546252528735093076409922264400822058495007266988231047794066943818954320766069146658316824123345182780570580201176442213622324469552364730292244124182547209819181002407904251015596091933465520436318066633951337980480241278982939503339649208738208786796203120270473686853428387595677115438835268441218432945055394429485729175860054914287216350031504563663653924126208946166541087304280909706840957752957684835614436899191431711565311567774499946638534279212172693302943425552213176743243542133857019473198471578518613629441487077980917043467939358600867077543209715966657370037170462062427561110504128105961479597250728728751868821787354143129096241505832299203011148050879644432188579581572153199276263347088452948013368402584923559039586254843497195176270280698521303925661587024101757465358255089202345127907319051851260078904203321398293903039829107090700296466205411951888883344212532541161967338128646906870673856804230001406690583201889187008213183145867516966380104411497435433897997549211963477570014692632555456608798434607133767849440860065385910441895266424456916987889600037210650436343435899625753489175777413772067313627920744236013639813162922908271894532549059842634925454191200958740874492210531263268144767032839403602137042020388009052552055530274791971902349741071853112915940539668960166506182436524214601999176680255950297999535784946209501104047551835283317482341136265615569049785764207887327229135108746014702008082909468924933183267437118576629038308407084401473250368721473721120252876976214674046898792768791124720059686801323713973719554168114515070849005423196535779765001735944722690312267830624113223404774357445384936810085665088432490883367516579032373951155698021915125220855709913255392798375258831021567393938466178352671487960747298250139213211133115158874488441128073562116161618042924238988972414875971874321314446114019490561297456706006178182365220456518574182860285885497806366654982859435293369733999945443881642630770892681209500270661704645366273013831760281904403386481991418841081813453725052738561846109424988153565661161138749920935045523215939368491927390926942590845801614351514187461050228873659108142640717963875453225673413937033181383013613429861721269440266863977088398960175649847675166694044171933947309973802693897682207363610302294033667684000467324418326025121054428919423223441044715444818696792053760631904983358079866685165476990141172021315017625448305212425519880161003039334868281290528580501862590427478622007174063083436284019756976881591338257466962162942371190760428411676229363757904059561080199154900472419300060786855446019650558370058619817547275931866309207508065742327515550595374355995306581718946207415159076037952662969481182582867235130154734962465294733555420602493435233207866544884602554951233518852595126556228234361827631819389478528911538143221716137035855404401479944128736716521732051828492341852060209700872447383049865504422448155681009996688852628291200430455299776634389247159544741160535465402846866181646699028207310431139511704516711084606935203062264024118180095272584079750995372376038258978120963661225405756792174463130989681443318029846978042883775981799783255950025889872797134710884748418026331694899949398522565525954179111028954955967728942805837995569175546626512829921168332469766463412095772738050452512735634929806724568362209593888648756759081971450659140522968456534318122164400651689493470688621686255938218727818726561704563992685093793611121889071140790779986258963225971363662951621220998646837372925828677481116795282330549240408573617254518903842393705482921402744821622883330482657028199669415157481591508712468735349118995887714040282210880858603428888126839237047410698832846994033546288293931303450809215722813939667129600448646544493599000387926214872855192430801155346819156631351939480354698564823273639723455809784956360257846346277369324561740268898526468688757970715126165478317872751952933588404947485206433374397067057240825354619626385812353634745266826298966191215043223699775858205432815766532750619592192004364496613286707046303883307609349830591757514219739444090369543157399228472534569264537477726698613338410216100543848130801048735729535637069095132350234972087425397999181256141624860314109226044627315645353196000098400206932915224016402759512239460858348192615183427461588865077522042227335147695663817124631695102428344828594476176443613988300186409146828598680153173975152535931937823805470209344013784757195634315854465571150441873989406658735601710345982338021483918138467259002875339421655293313547479362412257459184539946041535325010079898728518128974887285481938373690071571953005871284375297930643084205444813294858088353983011584399033217615776967802867926950391249863382109505497995278158147385049014825541535871130211013961137766527624040601785085203204393630158238612781867937809135065052539723897035713676298738297137585126446052442521622863032856208533461596012007658191904958724969153820261130746627644952266479565222885533565833788871636041852732777049460282347828952223202860965165834786053997407015345142436830655336887255320598026602510709959944387059449544353124061150255153331224881416845462205857322240770923052850653919967301972253161290611190819171089989463238255231704093584278468084282894870047010365928802434542597962995184086170504863086688492233584875425089760649322778229031195100494151787743446623223760920479069350037194043527072124294138475879955136796470997904428827144550230663771547431001782823501475009053787799752039117748850386960075321416762482237989516164481657631364338483341942193078058941913636925021261221226048540236466562083909209453623663336711517388845417998279798570320025748051717687518721330528179059800452848211020752449652831943053513267811516789325744381101630405995830006434653871885240987682569177124302453972595701134860530937181956726531137504617131084489724794092835981468100199039114546090420009938034828188323938586967990215369072518504225183937172977178019823945824919313055446603148679599260394387622201469939069315830105793041413960718016644485179042813475955918257335638155531755149768184069919878718781222772541646361060703338711706255530658496395302263385191061987069271121262203505563304538639854463960708963844182181977204306332406333850389108899144158204508350148348785992781553863483008893320035087135450900525408647511907349381187736709424497646099444953425523106774494690642065741010313625248178250491903081313138038769680387853889505174029376881715133380010208805491859076763665597266428482810283599262262972452278087138824738299534862739636532411898067920562799598686756105538992422400108854061427837692940771229012927071007658742917167159942260772967658648092761207560693185163691568775566286141750347646281885870926182318056705099564437917050259692185354395606609313599619132375359790945707578808305215989130213695556394796693618168998650851582210812569892358635618092985629353934798899180695713989176742436185700899921359547939299201186842341488275296597555925685037438256580147091514096854389973549886423888122075071080624672963600283617614461280400000314989052312541658930743157023239807603929230984214666147963591539308143078413601603854326974662426546072429830391229920080677812904618003072171552420423213940623366486990570736110182183037342003216295997983426862470996876159760219683803611075601308834820481558131390158754124914956574291058800452033155945990948766483761005785316436603959630162004352208324982845186982121409368972377745564747136955210333147942300883535172627620699640368582955872950150661604183676478059245481266081393946284310005260523680000177813770687415818695229207506308505719460018017054225228600975770830990966166498190630952592234969477606240651756941642273520933495693530493842962701707335788627695847390228601468237028891839935262897440573337297580242696262982798020848700093782581631674428971527583487568277086270235616497433437003286410982601153845085732704208319348826906144894155246637631364280360770159450715324577444638516847902798576364977705194817508024098897027675054631798859140063617537181972020968844297737210807504852615931899615034457528360331303171994728851505174749647281215051952296984556747020347666822013416984369682047064418004042153294702694506368269358028954504638470343381791124336405562948894833938122967050923185557684296935715972049153860903169132648911318447439330496378408096201608770807022428999808400577804494690403711561983135011008950606908062675181447917722827413397211197771544138416664650079658149672799859843055052423266149229097856696858157669610326799703761990968188834150482600161427730851384206645717316346479883646931780735985446613201858992936078765609913253494586179592737394606116091793414832504983420583669943894405073788480567490968942175716757122766364193603482891711789623447466723958291615406223600749158624255220378259690118059197121518985674888516554449650739144891746981410207094392607097235479892888316812280490951844259895599723966712274803319454149874681076976478486992815285430678872407482119843686090507198437131477214373411945901038780778066467090916160398132311230819803392568312813671344045092180171768508021921072205937328558559714506281010707502349895134837329936231579230764164550409625428786475543794343107851201417495010942712077783995945166894127007408095140730893114656475793496295961720200558069276928595497370966417225849081796952982351395098702368869921842058279625289527824130403570999900521267684627123503354218344670313453104275921920747004361734714168591323494269733823771498182216660129002261622241036502381776464138014270000181239767538875737359055967717079197421917577665751191499379482325638318608446947447945688462776469395614053512751438109083868407728909465266848228300265295674747674184420837222474456323654049210868469035811749496187933339329177747490659596308151135209623238936071841849969269120519861849328627103449729674806412746229191499830909500475461518872298448331972066090382060448891251891929810499301995324241171392578585856782784458018687864556015113273235265355654508536245824132279490667312151509354069273799454657057638664376932872782103455104840820973872415011186841033818128328531482122703011132261885843159442304204897858782826382849163789998021141608398412101442824523604122132378124147542716532389380519999087525618340174616946854682164152549907145965798446925956741178812454081705104344153029561634470748072933284249954119275134479324042576279150309844987617381436209689435502285369868938700272620792328443523214297137066122799299094093484351663936309341651664235715883340675788490462843002952820115747922199983773351240309243416735727379922393811818536543118512403490798524911750358112224986267822476905983816154234079407858707011672099020862202239880200467155962809251096906824867165277369304812151186843263091319493425231853904158001466865922027581245909153256479137463931271539621158050545026432621864567123120097084292980153571858384522327554091369617381911991279943463918158116724302331764525828938024957557968774520340150252529711257824921573722785726913524036854573294132916993617878279008064755020902777128474845544004737217518863053232399102381730943685218842924994699380683874858841398812081900958570553661487159186057436809780233905290048065154430913431345821569213726171603934228484066348715758072408307570209774033092115147384979060497569363605395950016675417064626330607411648627370880887867715796357948697484895595791720899538909870934392226131889535038028015505082914440381546171406256397179261726588759812975691871585443282698096294371518692231303549174395547800289535641523451236042689509957254876367148963738566532257878949237550163852769614263853118779728562793171053959270572426089238965412423719223682851765863528216293730393768078801218552342709301980560819132223888800825049134173872110020365040411063076360463699544541537387632821267670646862627600851801233178302359923589136278139534569637807603767053544265937796282553767257350182104302772529009929960417365753460548015848884604289772549337173480530325620418857329684584769884756217454047501405689714642711212727514710081008443941837770650891811938140269090567172144593006559193913413233220998387547797099887332216079719212331823555264803145178061328369340289717804159505334548883458998868043549425662480620166968319914720997982125902181341728119657517824008047955486747971863426728636271722323653840336541071034802774841521049353870225125899347278792539614207076199480176492197535846639495990937676587776162981367487989395823066018551399633684933286028178842590282429718230666792763289044157546611372283297670917372220036906622716511580805970134718586285584963647774278748806021144074344057250330007331288765275289087653866344953193185551024093041610603329315033028413503159143858099160059802822783609401993577224599561466183330329097464925349795743368732073254482833674835455506604541322293839296678979183448175689266806793401720693650321310399841017006743561613735396631800934026242102331367853872635851775485570803201472280456408990839133661136870528958557036607591366609137215096427208923858315656131104191653991684245858994251642494455602066433248012521814556140923125917182589029129913445404611179604220333593372674039973641371146501809129661495650539293723218741313527687847167398949862461672983567228730311705816237070159026283457872082026705739801224709476877080483567045618504555143696240113481784590552832713713177334919146294033348142027378384686186874962390986155082159094593259876261253425519707575346350351949319038572781488368223134949402980528987430767463451079647583358387418985500406210427574119039052905314954248004912284268313403248832224086707553415983728120346242308194023471758108115497534083519452040974968902426274966398605414167777948173253082457251914588883416479231658021525341147176564978771198761060656841797919003601009318636026416866095683141764128371061236229447570946332168654949522285908061017636846677015660818344056973737090696288826745955415929226241791290272249353840571372316413563723852573815258686573094044434156237575977621203231867850027150935658481435254471829475236148419491274871261438758377386176609190974391800967765039234812079252570173433734239021808327806957714499772957188159974854237340228406942035306062457563267432109798419943374792344023340288885814002431975323985730100485733282372116830147952365628133707964662500630100427886126918029680756687052728993073583581502751095817736582608242999497473678982067273060083160398753959644359101323741621877576942273074880802282858249999934718205823541218463901076080341049240463500645960554885994051746744688116780725209140163357028742857890683438463835909032318070811262944814056607771768540214050383420059343514119587407196041174536320424372106131451720420033166974052228306114395192757878028795038802375188420269234747994257025040776437441586290105597966014477561942598328717892286100560750958652249944466893046813467059502498494506811893112750756826396366863938753707173637754995238141808496962809945168617559790925598537538942454244294824843185467543299222967563716361573837799822584921694297284917096413689431425382901323694975804054510741847226366459022008906947086010132061326717372271029833062395979919999719510602107472110089542458811349991585063863563701995107900398655300647364232428324640741305751182774694349560889121678575596861212195441517623927188907576097633020794348898469977940268507080081305251573711085279589321231837497048565311311734020365871870704147437604886724296888944821327552653199661378674623659947908484425444791348367650178488930691893702950385040601485500613515015117780620670088062319984736179258559661211471818087944153164960467538087358706168720873740044630836326721882466580708797329233837478205116922908006768874605880232288274561825657898379419153131272321805441714433180563964260262041629882419612966459938916001132910511721016152098579886141732286184322066077850331832147215776649761880505896415503319800714301498191624660725983908847179323225423591807341198182272386123399896637048922944384329789445936788237521942526214484644010001899108528538814280877161780116957975959668971430103065901963851978030600183186128064386906669283668778542909861422482167717799312576566478102070018413976683292270888387700326763168828906978208365507507147256671804660044691103832356115506775442086496431938323063615784368494564311750061095428137960985968044559236144124509947080768674397837565203629891616549940460228627734419362539642353206075860759358094531861956703540131892737825373374941778688386042905265110159863999559486822731233811232523360565502006252836869923654448697496581871666834245689482217756160890168535195724337934965785000294124493244974749157274630473277970078830351144701687325025981024827151611967473413503302223323139866786601702435938066096432148215884283651551978304882599214992309215118146594615444975280295461595761412430042950587157808746706648656832952815736555040534008501249533592500453548678069711358136269036366067406616609718655083048033479938737073089600217013120259977984324833745766527313246154158940660166601980196187765521621006437150214634162132914186931792004871869922099487933376149735360073677177714599254467368578677731178684070215945038939780726196384610626774205568012944825593534003967667308628481579609781554071587602895951603907201530609530040475772218379502929400562732517867924035894842844076523095814855861490362405618625484434234202356653928674366203020809978834205799794509943684411753978150754322466013310884179650594884290343108268185302258328634781200156838084882767311397341862916070493483064655712650561957674939027440984770093648805856577898251106557505062487741513121983693171033615833877908545034200010925141725009075663428049912577185248093051135880191080973471066716558807313321558758872472378339524526939283619453458948498833871560639933418528228142263788286880365722313475903853043723800810749256537979575614274951951311446936017526985532784951045794135744662356450350988281304283985999279866238401459439179965343894369474020427572526244724940947989292358088346370732795440736129217002155418049222074714575164065586928870439922855264028667910330929084585453800395708148397672590691916139970025665579063982926533661605278305123315212019709375296656520589569701741959202700074335507938505201671430404893692085056504760113806375517008722857800167399278390788814174914865417890275284639047697738194210994937510915129018869878117469327448462999506422497541525500255669798590059383792390856345738802147509528522555768713493003822361131167479620430086912068386317325693641746553149161567857900984806532422552172251216312872658917487046676207073383373723581603131982898901005893235092539230642123059645169089943723553378578785122110422725972006858448033411562740764581132450195581668912932108460772206388130618991411958113457220869934198975324045579962055846208276041536397931826836082422188063049241712085649975813287742825098932393392726702167638859153474456276132808668556502454266723253447883749338888194533612010924510998827863980050425374121588156030337231495270609596531405036030073307367673727963846464671291558998026449248328309586380200836903232316229130583990538251081932784797433211507394315781614297809565495748841289431319974051013066025492955364634549471670741146516173778521519645026678190036543942326440004802956794124829328982073090801961642524717463977299301630369294020754320430563978058492999988045552089606156466451225154716222134050794069318705440814453429313521150358347557038214471134398443064052797693755280892314614362450650479371504161539576044853248062289784460520234957018895774545100676747258864531801129609397717939516319727769593129308381182434863781402207253284560831706130633810085378492419559470311029141127855010494162376966677927638650786481225490842655734261024846576966367853099275099462883061616339550927495916994806616569561126055827428797705907808227510943530733523440532362812225430849983311167948331226138265153722069305067933464141029434539786434316013719124881695865064859157096875822965377689469351972110695530394707876423745324540847152541528744344217699158970182930444782204354980431600764153367956774062470628119344559114658699846526586613629161328517823218906078437176266956996437368938382309206806325013872908195566708619037173910356330185923105754652350448482093593327513438112713184900352294659741596116732853177873221006255737289410747073852493531913766940659457389885073995833337086967319409721706098876589936481625904294706770467238061300165955078191250808660269664135083337450905055500490202966844183456386077642563450923875906779968671050900311007493744017030278542576673788888347665306890208117363635732610883489894546419742677909068128494440051047475330345935007905978478918615814754267318200017614176400896601253912755185543319222324311087040818773437348488220910390792958134040336853222194382846725747357319789281104763783442686073357632622772808781389578321917293837866801303629830316858836377554294686758249865576383039788104792811094101562803833526536104495633288963790887020519763098416022735767964324737073445047493299998083205988783696569525738515976198599492815932605398052721261295247908541104115610924555905236434918448243713246431948660993660546120904061865141415588346079748094142082816518333592644395680403832242541799594897990167356824907481854281216090453084785601832177452386788656897553258967832336061930310126380524128455378347308029311203514656321205997837154946540341114900266898182985956211294750119731669755565971608588529492178739458020426796760673575712595283262328912134005085214498511875809183885289519853556282547355812551568867822191866387643632076628693447072168444067001683619658071356549242262752006957195533408122234298082657332999286998546379178890961038879849815146557979579594271467821114104165123643701051094158555842283284870824892977304951350441831962945740056975850176760113591343630819720229598466339321701637740219617032552494945006692779944350711606772897447643100732614538506072901924998721149316994669217824812753686756399624457201441557679164038393442493377537529570350104608733516872797795204330852993319934006873753036553827388903897819190774952685394960179096914469655778441366259777854639145440727031825861541233281375956776671097429821686266716951010328812518953455682994472124269228187347641254407508747367986538300357384801558795771877950425365714302130327313556758791650084378429067591422035548074322471491425429526463903593001869860831966363059529714357885294561504847287922571049506149637363284535963816602237347892199418255010155559399219881895492957382294619311576076962611597202595875573682887616102462588065412905860193996897741586356220199937014009927652545067673681271539504789379669691837215460764793321346294196799330419057424116554236386227609806167185886338007881745081279961332121475647778699755887452843668915562122906367952955836367283521992722884356939689791157047121081322153276812690147776235805626946504908617020490955180077800804248443351325434131954775889595741829026994579929924259680610659963187820077912366765316699256454954168590310878450636733357274011104442849080881893052777299197223919221374949592677621350321271505997219782123037275517919929960775541948579196445357147637975627020631678970966789166657322640941242222240651590912354612107375570440208355389520414371018989139687807190719429653299906619872816956067315919045809227595421987018828799442087868341416162822012769350475155382329728596778819307616493742265640376268385003984792800733532757300795239051885488159088070246181238316370539457054176053536403871363393446914820980407432990340330590543174233646427014541904695844269616961712020677088783662315670658164389787300817185312497090534802880850138612087182411816585514739708704269504090054165837532793215056949585188186091877037198289420400929994917745199236565881687510675327131202718528614867508340329257302086073669137442074828700980131011420409364322152880757590153143571028335436174988956083881037030679671188986086579802781210122585086925561246193329980378200643602475817418319795571172903697946936116677945428534241734621822264587886053813626599733183952480092180946906037286304863991244689836862774584790911829949749318386772805135257944065180898127585202119788639654355009844442296110177141528680075384599113770447570137050182981220353656727871257125843620157485900509988701015706603305804747481216560764403071759407761960573164267810190977818457024409770723874413850866462759393836598259773114302333741604195654402269548393158020214025093680761179184303863115472340345075013200980940692572334622276685563963513833174887702156479742962285853029488947017799478055095401346273686206073277315826783024537391945826110398020205254441780975035007043081028908149951295995095899713611120442293254697733073201674251683171621112461607869850512419614575016979392745623585904469001100621210322980179336082918293125920557688421999310859611306624986726229943785715901346271589788944827506534537758991241242360468476855600642108435208875971635802604266595490798611458730770211779137014039895457502803506604606620781849942490600024201714820107556168533731272238214798605110123299112989056406203535838273772319856338420617245753989204090238001425229155541042257370428009243686206313101732459604675194964475356223927759558536953774732610385773155773156689197968291011249038547424572764282328644160246102598543711908818094205446098401546197882868577396918073401500368614178555875133314420100307169230148093540046218568113906177494540095673673884571297356086007054117932187205978428864720836232478339342136298355494078894749407564913011732587362506691876683471560506608732558702006537550154617194914736434833606169332075341891768900342160180373083054860763196231259131675224996826382006003634642263339364116091784422880560236932346330922584917655946173542708127842273926769839895039042938082554722287387147584199873595252842794874372812266925662476992355714598325265549419715769160534778913689396457202146756056924654113069357879430468562639505897859908435459303911432197104951966037914213802330596957673181235429568701304019461345088031194614107825658974440973127271957765862162230782212908416848853681678341069040131709734091732099575651294648038536760052173000832277151635992734949485794720337227536261944367366024942015790300111905472091197737131967926611994341958909062700575672310021502556579713719442410710566609373685951979105447258743438482905969461195412996504198932211660577062088930930993550935755083360480772380903118741723674798469451649856203252844028875977517049686287969221514773301442431132496523991991488318971391682633594367917400262712976761365581192537171483669625565410675762148182535120218964812714788701874713445529182431043298106649999251380338735455685375020692004959808098940410911074991897292519278541881929273720672058918755584906101399469882088500015260647886431685770260013415997678325215963347924585419720778143967774527393074181778485306075508694872276751130725955718657706024178314108113894563803493942551626990212143442842522307889745539176078991277546757808407373789715321365086371593883023117442200440348808549512882204184070758905531447238733915991283855750704084758766299616654820225830762941525853520529304363659392794979767922916980943448290199033753482982891638007878720019471402165761394555763286033773274671195899438818001441374579306052690784579910700581126174432081456397199370778873202028921913051863495646248992291366647479793219417146243685810943755565458964055043321622317921532861267382480721240268966487846256115685126776905064573428323120746660512928695107556933989816032479329331937042982430062106905572779993925710555721354976349480953417049450203943278589323657134215521794345991330908785127350254656424512423458019991049474831228852310224928199952073861726367025476196263400667602840284919482053643157861135594390181683893664336647242766107060387880594615006273607122898217301419764082573473731742337127494340057735882086522505312084982982617181918859507564145829368100259896657969790050038938517747229278594055652007957949275433499525028464907801263116068043569216914913852392274691872398651126289616950242760889449226458230283942304806012380436450581004040643755476475597397001812975112830590198820552254736458032197478785207651012098146549836583685673523769883322400033230847011347216042717522618288213109911410939382033172573583279552282282084623899835813945336597784822847370023451858621750028109005262503772774964995743051177500868749766979838090400473838097193617121661611825551428713557488916170879687312975519650025661218120929121260852836041377717032071962154364799508514308802598331322444730445273524237870282312773802088866829674946363776529814136523192457965388810953798524635457392355986830503568925772311983119959436205682807325606492063692551301925805024794145666365037584544190204868829617883605210384849868690435127639949606753402755636787872681617074397546065275157507630379784474524485084309245024168249365837895602525042167448854964731377536631829027921937560633643027115844633648384645038597464450277402712881775553593823038541179048298207608537519106069998765434334347575271819392086399782272343928868279435492657615531322253634572830971629289055338367099405160424785391994348973884629664728986181452917994622717596526794459947448983377572632153529954817975858578622398783429397945316084518944191612284021058707902529742605499114412782386079811277612973198400875856498987403739109928570231431622592736080270065761938801903248996649150053511207144790993532240665527848575699182522964612743014874636928254777354651084909943521434679992559422960616472685919078315556792709979845658455373142410721068493950057396377970015112941290988049266041754709248903180676597615399436479550069580248907900122541898991834954882330357309581533334563602864361981181097131944925924132076434938345668904621576316458184761281745929238216220921325635018899968185996960316996133571502009256699800444891333212900187115594780472181477219326330335443676270067778735788173710608927176356436054436286983851580176757534205141136863040959351585520422425454572679118637799422116464411399819099135678664565413641893472902093237134860897425244129436901154610684113828864177087119861534602659753353538285947562633886902914271523026689326476596969889871338645877382058372335530555203698671536343637417901226993379288339313633254210410556656693619855760310794221473037806870640350843820146167419524934363429829112325274577445199475681375736109906418164706264701105336411183703043481353004167595045082031545145710115321532308689042264986104323879394583720198221012623182037196083999716306422987140824601746208509364367791729662500252529115861204636009054378687225236870552729770726659095661371020569887040397203453214250779574245209127076253316963983456419640000867302760027505937900116795900906996998647855874721483631076385165624423653587755171636873391563097830620030482277510939916177442484887847195173263407719339417138995474143470163414631731152020706636585816898349596115109304126203145948428964854450974758510686252126002173085614753581011776193093810118777861360563410540803310240447041309726131222820088816728175792492436924507529782018909458292527369061257544716990641225428828923704757470586025761076387598522422045132450579880029384571505289357993611718665209760545561803267215848517925423304946596496087935718808733086646786757398054877130688730890851528346247460372398009274972378447963809186964066730722951262089077150269969505380455670899124643469801455307256390494798139319111718383985583202284181873485683396750273870075668718222189471695495155245669487328468999204998275801034380864766806487603474572057591058625228589379130350982780907696575418260410427675767756443661085715494384545022027707960448170877528716758808533055637421971842110048563126588358128678450804093750977863754261882123539200880300296562339825382672718095832598314412575156551382252725396073609693221076070405224966302706578086391720787267708695525977548558322735345750388369902181148764998371953304711208228684113316697827826379259586946322154141909006751707712511140736544834133078493554388107798320541187022165446366280988050789104580734798049345032176570910607209337580037517517343588405174766814749486097872015819318267462327859952825011083231717178065635110934869461427288356329526135665286511259608555657300195808769804751648059324522997080950739057824529890336161672823944853259759900225292539174117857151721272226331723792399787707376847799120715977801730749490573227599443131360710788743077709869490758178626302970748925322706181070318270953796769352179643984854110564291758445381351529555750705473002260683658177405450173152409910264875616480006558154765854855099736020127231008709631765602919834828682598576242666369896229240393522879968818477106907272013428700482764907884176039472788715191914356634558454849472511413693730891453690237388341269432151776161912427629152015448678650612248398281429540962497768382771314245782534549177841136330787366225183055019098059912624552389402016642754932100118358427345916524159913037016939455324085319808766956887896097391864040095761115747243700202157325962738716241180539273259764024381755470145190112188741450839745918070367708976182260346132997469552302294073129241450183693533675507872372955242180178691914326798239625120080118349516413331597778927997890279183135809884092699421945047276846930674475325456978978450747134931783477748608859400130141961570138053238198793680642707317471785390761063227006363326396851423621241212550538756494007350998273775715683374008271233973419446871605048381345144871667535163020768183273292141582936984005764053886429884927553494616048863372440688492886011196619787208808966736784459683224624931768450825073762360156482082146529154615475417438880855328078939362773852749267219985135274495314718592380244595086210918782254140554840867805977450140501569902985274514880967601908233931623900440579286628393171023736758605692134085217679057853063597821566100367814158225311186421356121143025810087054846318530506792471188885744893262115899671859119611619734033425567669102768681899890978332652169508943966426882573843916565468634731892263079936336054664343796596164423449914741972560890964754082814200690890018664298592896553901330589771333737380612411345709392924643877674603267346656484614963837949588696154380877327386621795105630352220916268966501309171326623103428582396629296572495842280464012956862409516787426607094250512604034289963098915125250888623507234417340195745055678882885445209395487919257557705675490936730209786361259378131163183103145145362142778141707901621639865807922388766450410053673756972004168257420696610891368575951394954661874777763573205886985673289300882506545620252320531153133630061889547488303732468244479442423726946143962655171171328501176786216973879526690060731724632266102737384038438432905070211641700610314955732965820726318212824834153181387924797843193334541407369891672266500575530791217671909668125510385914147774026943158953729645287600486830156269079765670482501777519146158476062239983580953062565193468720123217519906767768958123746007599836494011879602066931288525842108237074456227223628591039321792442220453301194428397275026600580757661482846216557859726954010437470450119759539397323342467585044018789496144261591897043738600260220097102680327528045218293450472411985842862677610139343092602835722781787930215151571114053287638217815069055102671798100353859238372146673049506317147499526753115579470667280387487401319717383458351067003218211931065994017996836594540233362381975665698903645604750874013704318238058401165718851655760074418648563642141891406971211596639731471586243086834869858640119982778367159954056439722435064112635795019211298738623284414099191209168599551720651872160644861899486493348410482062190838397840622520560510529828771235948401672974429962620040794199496555928615994295408735658621693285853395942736470280489492864913521351960434614643264514914258251505416935224256693970517576209751425653101091526300279533195528026101368171958189432534754148734527797345680747532243015032898712181952289452530281915051138278992567511848317843065099149481134516743767167960818711260881997340190348006623162984382658906399056973250107607065877917607470649316508220799238697141621418755865756211691692483801298427263933983714016095247493045053546717589985224613785183324872051167305694732048216632790876460781329428920279305265789025907827331963167849993464248408647666784137982365209481645481740252549324119577773836129349151723229731087398886157175640907617543351163719594276395212474538931739066314037789733116103612593240766759374959760582385625929212737615915190754752270495040723593548917555362097050836502577831471238167053449203307719357909578457966156849776691611298078657892769290227565724458917712889297585456010486774761802251066018146071650195454535714247425710665824069968657049242756912226773567808989670920061844344690261513810011878135417725441383249092121391172558201401240418353022889080710923047695318786502655044888935356101483521486729079596805625689629931552459460749062283153763267627429589148277823711437807890599714204966685683804758860352581490736898589823071876064055247591216678709348242823556877183039365261775415158389789475474149687636650500716890850416717685474114976441110287722821849553098992785537180924345010550230367371693846402145843639207543487588672148571126600614352272073666281491234283520659513927021277122928927786919226062611556404621754576426136258975878521423579633502418006999774552033075520429354082742514471028851536998952446437679717406182458104058822180868825737181847747944187104581193206224702417948972369651540464033112895739939572766904221529212777902642757398251678913072062736868917595524983274646833506548013132863074983716719437185919634708263265862948812139425863233923599744396945171321305060682194648603530169321468415177608478942459443221128997090415126330753528086695338614296033745022732992468687972967922116837186527302208899835870072862839499286337897453218712197360896469395327388878678581698350144538063779047309518066680140568452278825089665975632384333365829802033883785226265089190254556530510349354342362208637108638688685641104623835962640824390893270765694331616753023406003459229627114726682179842936334159257256411646589049406079942362890005792754996584249658728880142755645996178341352808386950012771666051283029637741902275182685743266748027510113906957291384881306219509854502637988265768890531318283521475222343778713326735949039337878337757354499268435211494281946198946840833904256454269014988372582043828075327329756513301889324910240201199277122707017816107530169900791561822887082278266915015900276883386252635083703322900644179802168518481931294941239456655480153319320396422763026365993179892181078400701561983815769790734739717452992914992560649510656607853216431067387622132756520597304768977935652836247133312213887111319268408010792081569944538562323621805633053040710734630230501448090855135513602132059474087424452801079171292313742805983436900206892438318208000897283911306880978482832212810918564900714084873041729930980726011941885807146371726120976020392438918079359511590412390275227647494043249311037013365177807004971740689375060375941523694885760522521993882412106201378973465282030662232347526741239920308623191376395098184446130578213685173598089819150459746998326424567125520675763445408193550624371298204428733633721446502242218292003387081429317800537298401372086551921394954766771719878966954973924448362186170413220903686718642594348668865012530588313951845283365637775318643559301364745263883117725608445006811896074000537793950332825091653559806269970054916586345901268397682706807811681971526144714764512860293076720505405730688520103840723505195624136503810424735507939666183314898648083697881852614055976954306796402815850985157968366895962610037197031645541282573652789907622704749247284186986490202094056222825358707822567486257794685537118700025740489078977802728760170645084623614386128694886677906014291832060058017333022748067860212944757421578298155683365324420581583669752505739908355542694079883758243141428098622360526559395864855669467179191891805736642983252959189197633270678119092259914085000439926377840108815150262704358232711594474400697471252266955033036761268188626506064394091517318591533958541111728892648699844230340095553423757908351145263638131595847910585796733720135026194217962424892303135627705388602922391909468127820122293127764743568608375930875107977001052158904578322533546641373578338566312522693669756310999023631368019472957432530826658198282639414955357226358312667514216172736378434317280625354756606517946794142005975061487453203202204633783640247912080850498475495393408996739139049000320329298870505354237739411299824229351409990583266320353500540109007321184243629200940376738294378567963742093950940404179358944603582789625023293555329386286886840058437631038625480751918940420236569028110534973417340464540749520260864923807827185043877701969671364942120096635893661964124119710175601807946806724929250471216307061648716961957185152679277141101977018766296775227970877716520549577517338529273889275443412491541605792104990775801350167999252168096129213750073065467682404354049312836701632234614821353144211472973717072678222411903446821825152694329306921378184042205510127349427300592338509937622966498772546251461275456287562515551592643311443192473789198256735190914177038463818427018151972739335649026278548519057272385174180001701174327381984612486805354316521246048397528013137431498220645225540790351519070671014835522189081354214713091954066252149753167596985294516893173145732653863034556326862780354378216486212866500756584114548597451872282766978271053442443587776198838073421491665943742004742233833961837369014806773986430572116072527898758963559850769709426659671320724218069576811767912308545086811998560993747097569061183880679976268117795714292053740381660629134990417288019785556175483434645932490898441137508637372910855632398660859408867667664744730344518005273048179841776920287749248058758930862600128526994354866344922480188352662998177074851251659247277736564621126656365710491367885962767554947697005779063357033318078039999048679595079632322530473027391037366046198299556654543726496957164194107772222145099855086508201193299470685325267619756828913804940858072488086951844896964982055827014356528901963676849601106885818499235636513898255219195742441535413885246427728406552178263326362797779035358205789338181378926897036487586450576501454571570539032496595957886401583014219684929816276931775903391566068879363170409641946251030060766981715866881110673117773826237791413653048034606342750892238736438241998831193552563352729424204330514910586344438206798189569310660712208636933354793973065379940539144976631295744330257284590285651525077787694313280216060913435740476604518686955604226234407043159939354431485926733614834095789969649270752469609763787537825301072175967216243161169354611355098882205999364784064907444018276238256990762353649123510294329019182269142692711839109991586421075148294417698155458672657333511015128455407608406888199428295931126118371449443009533005994005057845169670246015496584199989953854933362117724805692494413913373619810043995539523077010806670990073780587413866272597641120673919004372125854142962320042371909445158644918350374068261237294542763460535619842300094738159371081761035081074534744616265520698012254391726944067626717252369571129718512612758271759133045366431088957934237610353092763305460667423588276509306352579135763621181799065340602831896227363238483683778964709763691423091631577277370516998752928876340763805162962305830006306333871047128894806664382373853401882389439362268091090151849011043528330017171496802696624879089229586192786649438092042136254517241442724368129807171768615648510138349096751124224638708694120831368287053776269823508948070347543583960393251647619285744920637879467324262461343918364481392185924905852856017226323044702428071703767380990798245342028642004172492625033215608762035983233673544329603788523575929829982684204636520786002459965270168396267441978558226561688899683867043148415059495322539277046321316314381843461576816200732323307181436772874526143843556715502545824699651999315252587022621035563632112030845350280317065184915319641163385800078088525221461640614886048884762470056918351618388576425718862591741140350978423050374745235895386296172775381266476980288520682139190760458429609403207083077556714514246775076892782395900061383902347769997814030733032070927548116817251294685781341263456834939326271727086595610097410438452159624479702925288785732422670281692775406834859578493710743105170822617011826052865615521749938108307858143207851486888539831097274200212694511432616160571213915605152018717709128449025164167234906287405105561109525198749890320698756969234222552021571666215172238603213389141531715546413861552841193991903529014649138705669190989062752811746171228019973310696964714325675706328025852719411190718052199391803385449744050034607756308861472332825826753371978400602574098120151217335728349519279691334629187564145325916915810431378987429527123791319036026298471999427399864712392553067841667191915872459706009594461937205388679594841799566542308909279025029981762140736104353099589644763773934977726918635026126566455200028607607070619921723256611863402011209172361735003775561808319021321092135548264539759159259115433196133870176605070460318085014306740321705474655311832473865983453717274980138222156349864980400350970494410726871531910756587978172395695005230486366213885860564910068343203857934387878826385745267276362555583711804718574610753855532094905007769562960835239567340163686586985234103513570776792684633557666612254876175724808286707600719669609736289151940862913699294019241521121485790257195237990896686996543401840427297393977492889957690793295388650192195039643872994680320163904562609681752689843179754427760704767950619099232017152440021894179031983968881287316662321489767922055491777860287208708487645367933848467654621228576974014084597579101466311962472830569234749167667176516040052908744585225759541545663939785747051968339485350129396034894059004788652678349154440794956932377820496389734452420235224204252944894427642557040456235913684502456640295968770723446311247933439686331092540831838299803953550529418756536755514991346204862489513091300240527519968884923112321316146058528344563278429752207848146864240566151044630316497202319059230549151326382086887820877891123479909842162242475545560440647595806759833928523381859368368884428540633326212815194780682815027326073584603306772690266538034059857921039177994407434917378283437322502882912862840765121331608498187039407733663713631977344966071405794415504525152282801817896869922647328831922182366326759381817413932944609532474927349522276958922874035838866893557843652504373929762639586442685478182936388232896984522985570740998384283746005640141694215821364026689547466871522907238871620014381064761791362121735551299527194888852554874030207643969713294001004656872260314779524452325013500815017070396430116116343161240842055736854023988113475624786029361177363833713688604541876819217986463261938852196519146864098503589508878876277273841684861403308281918359942580357762857445202201054550003039407657481980562695458470344973707083658459317556970721327224344728661078744069626866873931796058311488130116272961748516170007275077379361462531378717393032922169516376462883180414767774796895671541520011909803971756959651133013210481538802686751079380186044574081736940380111018538754925066223606526184594868279189807637015636074497067957139658868289316927809041355366944913038843522680011436145452916713700698713282946645020402005904549905127490551322802592460508656090466875234894177713271415894701353154260471537313359330852466632451390800786408238933717540279635848720009828796635780409537611663009703606573767843829589123010748202496885990197076439768416631014263219342018200125933582795343300539285530612986051418324066889713189165576395245225346694240821595185452629243178052548513682315081142361664330074645444909968789976208892179447033583515228632377516065572122292978441179656423166799675895894592327275084495201629972492937521934161717295684041696472518721328153608324304998214747891417540543675458427019514533062862555472511284886952502247452665820276489322899207823216973133915072264747289162853119493688908293182913334273105160945871910976130897761826955915418053118670165317176635486266376499922505944890575562794545752048146086166041979416665266810946345450175248588246286149381417167284897078790435889829258981774951139924540577776213389881554515183305085169941718076595428222974234649474829442292541340817172505373442014914827822924044863970628426297486263899582608525417311868059515820129437217842007925986624241343886543652555253549053051847733853069825876708850061694403455996625746867140553580754729853032695736928141053649657581895994619096806101651599853637398064396023277811410116260866555610668604454474322428626047604621132768537277363019794400894493195413478771759744683349406445960191505260437189359930943958619092990570182314554356229854300672937303074601681187085125914733110987460243686354879710444978251834871904378985939540640220127301007935944895992535624364100183752329158342920010818730848227785588605537139922622637597337390223644907655317976233108423389784210131113738063995209678324510027954841442625160080848142827172811080844635710375270060997218394464111210752620197509835134653997654490719479459053753703284352314396591410061786487042602942318217235208060357708956757815310440467374464637001359217761262004084092988077777745936300025180430823918240461060413471439160584867803856183779964696148450144170435488643894772879600911969005195378291465632517608670493039708179089719409011918848246502223935538178875068515463949312870824643022232371280242925165755880022452115897219419608120971996647673462797065536755409566851628641433868634502228495357849125137274094579535940873498086027638539634837897087658893816214116680189744867334178625699308280957743637098021608667432763120316193038705572052284198649396044265060463428257642765209956433637793925279529211621211222259347210216141127152334483078120018145305373645570528793216790442559399837162842633176622834355463833815283288714105702560194972809994443619021543269822600201397952741491268201756256350158823480453948607257607351809950533254098959205547956670179751315720948902826456984309826626971144365355337414859962459035192507363445178514375991182854928972580354608360877172325942988210372640078395987751950800709163284559408601201504927738277233040928483017546315575204712354932063559500760444664529819078112423356543647072152328782824740589687429523346447321717479560834774573728193633226446039731152014203632362358083623722815678162441788447600773155127403496652922372449816064873402617506495374302033222481692687413967783958098379277757943186310432934644804186675912514366201030159741779414741425038885286652103303133857785922416032111438312598662371672827071134959819407254298822773886160542535119489708189690856652794203640841998551486061549099852724570391630434395328518061358705097280509836296124128536833177908536935506186087222278885235969481378152348348235778850748972227358374798459453257255075086530751052633323952443652490491160489264944774989357776572228460887961929777782377009914258926277049660919015128374675179953052493767194424512452951933019185702819633599002803810260238264980524565224263086149093856236880627265112219136027458002800437730525146998290256754018932086665683031461346165154979981658209383180085593696585122676887747146785196189460547039209276995675567830845966214272503696702722482092603098235492701213347698177406714399399159072116575453607971945162860857598629145275820259632085974956309829221667995077297923024005989279971421688259937452628167357741455598897658668225311539541397715996870954334075022128035927817454828990945385700994165321936958087340490681888293779728021013986469620739770854310132100122220082841206784346734836593993666257214234257259048376470578996625831202857044223619370272040681343408631845266189117290204813638736435753246987603736857799699117876428336740723163816494778441272770010646926521239783521844021542177258257622037474050719097335051509430253831515424865320929989225568156893835416080591960947351053464336730736120339236673669908251990543114059033565516825571369469923121633713288731477600925668150900172337527617838095024011728461836267175746015801165418764557946934378546799032166818783261475808808303600533465980923032789040805195865590751086079870893456684854036062068739061801889882464003155018244324477837078994677612834966551671640738676169509489262326474708901203102937771919818073346352419564670284545883433111044683558301946596262327687337310457050945352991214812554627194494541774452384776503176893609238861037676310403770810179972194343075401795185800152145523197201059881178434536167958006811057018513032791053293980528323877336525988248468289393418898554862792980530546089925479449786215639724653641847783649101255310594242677301893990038806313921700059722582473427740172188665767731793320609046892064904389597264932055685572293954935579014572296219479319031600368169822619780056926092334957364151804173555999713633086196501769464736406051649116979802863007429342439474175686690542525978092674150521558406477175692115175005296972705046153672678042710132738259879318171230717041718752184620632686562375428327096583516547068052229303847629723939664686981556978673520726244983050716514149301021248271696646661761425659739239317919043285888219964498685221923625401298434420063655920781125637047993734810627799859625653715877523936181888808668403721216298359320539014937043456925860778674611827623027233877772497073311517188173166232608971834433888135286528239305759976920213607201574176081546968263931557323979937483354556431378271433198012335721571795370578096075308349710655527514977604502901229884902747596064658845486067429526002812858480282061573487122403144448780672808869611491291318119481628159079662336500138557441636335614233364201987518571745693953455776844569732991945872378826698921801043173320939895371286462835130806971141388919636688336987175138954152111236331213461778103294254675052899908759519254642673804226257208500891394336164613722649306868533257944227246164134377063841450942624034458109160777515034262327075060442167250267337918590711010809823381547075323507976911618062578155405181835768772977409142564747294950998865445847780965373236394396985246446213468890211647647641314360726198238779870024184961916365802223989365003038382251100391051774193790342068524064546561282143634132085635242855645689610460142676389883866162867013623303959546241404758174674607909272506293087428024106705414351189517822961600220830779054260916954848629765297754790051156083565836917454774626654037387555711763939861406200210533772444066652658270989314768619389573572932408789416556161817226441563423331045031959679082451842711554101716296740770182863094303436244030792699737959508017253870979901122528177769607231948472448029947789156891165668010931404134479963636978047610177374479636715597750653633942099989091686073541363729555338770632263479635331272024112972471972144961508658471471047628653266465007479348530369755492432585194876459300032983668289209559037274705992503514515852008124573704907461535990650794951318926791684758429489297163368367180660800893826103684104086084121130959638052884685168110116857402576336222700557489986732337819510321001359150523547240748235194266463707976600277529292110514419626977020587176971845945881321139102939979610577293735535578147057422621068298008185417838926298166411264561893856189993252795952376024587265330557030670090244374374310149550057624475700744839391882116602198019473406251953709148015556305614939810324475990604304155831561281400240474297635381186378631846890538717456870746767028328565262512350946228874193257263664869423612038884460380491284124160967944369464722049845907843912874928643214001453664806064839309017380461849380058816149547796326743094721264712583237316501705733926456402332939093427610127433019597095826252862964038979072712668540271614390890499821634111073734327756001077060625366499520359009291878932644308213837022006717031658126766923592910261162225694018773281732426941412023126359367688023365652721502162311138016232075679346250642015449982463316635011129067386899324352650573318509359260945918139149735748110557773934349345866404028925294588894869889715566256125358470903761900530889008183188476513988272440971605843748548926339127427435547387538366198139632012735651711817539232641817214809320835594908849015423790654200314691022598732058238220234310491651596679853644322239691753957688667241912027636517394123642293104329376019291022252473410086598525818907739761656087414409884126810836168356975609534038452328429043334779431544985128100367249228096324312552008625361575953265364874593223129556400921714128568203030508671952073283015905950092774506194855803059308656703628143422420041456404487991265303678561527858102146115706936578314019911449545174565556259091295868029184120741599652120184280751703224419765682123469138882351855979433159931521223976768817868162585203843350830991903944681567116554694937773088140265108025386514890050919539571109946270331640109035148109884566297548303303117882821573787099473127039715173473820978222613663484340971082707067590224521973445270435487865288013116705227530549598312766247474150994313000570757762266240921386963219776655065705098279870516529149573010339297925973511918278654154291545371265897362924124535027523094891028797091348577222604867532251978486654900862175157400635287458870506305155071569811508692498752416435227978538535887529249832661256183442229362571653004176717433341269826149225231748580969930328231486161957375187943327318034219347503985888072361931608297887258751687803728736104624739840751734395218922198768229924069046087651457719543844578235825763445451791895296955009292898410413269021902516524588282090080613053575941495311700721509523099647548017725363768782537159903986799912821927710157660563607419776810174783538271308117600223620018060594307020492780360697071590833902950924008591675155756641523714641342115677011238126451116009690517345107399917143785815667204839939042355541409849132164528945444136288024075146991143419458238269770307286096027929970575853383791581263707161561143711431087981481153407791729766100200864250434382124100986883030059339670890687302641729497503380916564467991006269036351368663213326968600560188736739656977416181516669903868287649726342154112644445159548323523201217918601718777247578046245984848848091816683206195124834109004483241692678516948055585519005878649435368275394264188239976963277500637226584383972358298694746209774345689877580498034797232039631018534406700941735374904915163788324804343204375993917374049805530797473032629710797317903652096365677649679058395384047784590038067670981750877907082245191161970166927274134743154033462182824930634060251506534098821999744656544016841073650246294703300196437008872630773943412282274476316178817260219533269473674681546969814568852463540531645307143003898336664279815879070868908600262193252421674748164081636920838940788188932196748679719246875033465118143615744074767621211390697922537677177747747393274290866940611367840573433359644230420029166607931337719150834336667918182227891249703470444267431699554591494380359772871942108158595099533780532667544213612530329036955380924287110599053511402362815137974726644684849547138417913843327875935658944204725043463126981658710018605216996003630394700845182655329006625068196502896489524988639888986961193450486825522974772516694501842448390767826196012397007469091725670127007125079691884300375486487597861456295661590050690075153238743230150153801740119251775314539324677876731034513264921773143918460503711395308656403187725346223731911674984864069550578969593930511009313806368410137909507182441491414203170577776237883664012383064393029915926700648841772358556129414478811083254588919114582954119764944901045063016727706766269174673735699105225860029905824076972859469856875872470436546434890852300300547124906933862408954551284519283824304249483201859289483455078587878521523011139883307098419791792266332042737678583391457218532803482968207198800278514405535968625590638740850346130404190316251066601165170549321503780208076009723881356235681203244245351436382460530219413431211825109549672704057129046121148913623051953363791827807031306608025154703985966840609504519409175662493997445826466548673730779014973620440100560866373795628955462968825564555298559630415107830648185758448471692353279794880513792269066752037114758705358632576753964811860377798565240485176956156474611095692521509939558365499854682663764050145409328398211036270202600784907540617644398792255505774819591007176410871248902298988547621869992835771894775567222181121230835002779093497448144391041961987358289719418701039016206544316959432836679825374780053784170222243082409132070129708723552223693581201913005252434669518358372072281275020078886440563706536081485045992075769715220768631839860728205547873871831770572824493588020069388388311866531484262112097654949449193158416887698355552990545163380370257412907312005717928151704742797308209744695231126386852844208182242846853239442206207599477419350088585347212427017258673314558328069326888646554790763691271271633546708977750660847959819110165808411756541720088803259637082108359437356468558006806496833569769087009853375157950856696600648553622366584780243679206427456315551515162398025494430016720192791189747400725886313220779017117746372903255834525227010178723674679890169570933845585994998508376616123977297565571183600797415467170282232991743331959101784505600254679821932025829315769867030866468086584998614597577822325478514424937899864295312425464863073477494967260483138319743543520519517767256847160846118091249333621302180009215705474616036623168476571153466114762355455788390180939620846123088474638018017471390598909100357671282793667326981387635070573485011142604055680699894443924310446676003243511410203780747108297747453263882070506800101941323462219439155185078607020512691978869556072325514386858013722068579160870304427124204576592076701214571478665474119751550189602025035552964901148975247205354121285392955354517427260609353611451260294817719167796422728648601639160318463780759026517764013107791271565807897473591183227664757171087338783585670493682576865832795405152884106913124999415568485933703563565160397427719002140746632091294967333716706673684732860483464721271724837897741798966034886266332531852706168066240365323228208646909414296919938640970052126370249488236225528937530731502862756440614469225620865741159426397393204330562872711103443022953700289041787902519997519528557103077600117921663227841127773743361782342030477552403378025494958909951743057325908565551553772280850552505346114143705933037000844219427903306393802090948088675281730440712334015828830338503564654835400982234361107705147393876026536321521083440025694356316515494305085144810122417543275958759487891706743104384587212839012106165678919839644468563548466445037415426769337416817121415704353288980011897594958744775815059639509794849828765100159385846770708219064140131718397815701294292699052014711036525478509335919509648945920608166490695570793952387441297583114199603186124410749220107725156429307426697907951277380533880260102458921903709678910768166768651286471373817458794641675246103501486330526929430204794423118091326280173033754563975382638740878710791388767653304106981483047645630819094107395998613598197802569410642552091688536941736061410682901765443205246941701770461911188018392791040051308420476900389743433597977217158378405818169343195077167365769224084088461724375478440415560093203584993145710476520859540002592880160862769065868515279254097124179844843708410306529170407860389057059369932180619688861872011451185363989812042199521843748026484265805929452522669912687637889627208622134948181659938222957333647052070935748147187374644591922502550644364112841424165831719705721928091524220287700093146436858512702405799197112659009819527731209362491941496257628633713579804939844759385801447010563705703391808488361630312837185680339470342034922982181286209137348264554209972939536233888536197923789655880791992864229805768707419725406890790809651729098650649502929487886683673274636469777916171695269241138794761987495178648584096132985687862861056303661322820546282242390751268870498951833431317293076684258531758422612494234066798972499706195782130382239687270320336460527777398257316914921572731460447797562209210202955630600709698424858667444127381043641438334337126792872715710401242876527852038452343957048648473086967663843545579433447612296838382623261081946114743007857573838222101766901927178780879724549166824637082153718063692013269628100137236061031937056809886516442478713224863360683575426695815214747273572118612185807449622020178375737990680932122043249598573792947767966661363029836360181294368253263513076844280467208849898777895988836924297246771414471464560923205224624783774574809855031222077637092177376485816799360167291769904220701783092047412667656889393300056781048686352348703836217701902396778433938364214634639040699881325274447012236912587493403901927690335851099526984693253052934085438856284725575963405620356075410091629118627918829926533717116904737244126904185198864048152500950540837601624511116264723543830886899662912275606495972543951181177851080509470342886103538531080406672373788895371049743104908472456227724570907815540626603628445017995097016987036385823636042274048082538376593522562113986853014183809828365535677977647012086241895316335633888678366771938647320230151488965694600105911582325472757883409226768169792671073531418956451075675611344403186021750364357778538331216036311470606700607335146077332923436370048905099969995396332013633169161364741446936625433036038939540175852122299544255179083813395250659349151761522620729379238797491578628385146281669495335457638522700765580278102339172351644037084152704725490823893705666444397517498119347905786555308904865230362227515300492619766555602989830641283982914213435618750794995352881771124255081853528552632612178929679526766664487850617503104172903511923803966950340137485628731653495241289485171422791058508336456524544966018851099083873383028848140601816212356529145722237746154155927157084771659469805560308655966354879697598725698332455673672516719060852511624483582615863690390330175169539085207850899085102313849067418775150146736117588596522216261854562541730469885541666722349414648757923344079749639168453504365793003317185553753893587044036782815396816055492086657632786467757095840047322127587976595604258174698435296855619802161849108212546196081022447882798297373809338200371915810269728787085179385185419503009740508591606428674031743156975956482858176766892826511678277357783872405532948299236405446522758991533484238452046929134794979789774228100023855763267969847276286479758687112951188113638305600511974797588328959976660227280025426912990949981839088167480029989843591714490332798989384438789638893794054575786225688751316639504399642821740555004778971021029128361705482758627935416743577271538517119994433273985274337115495985301157890210847376555472586855501875131244905796920248059526722392317457694136619993289661246999579716163690796579596854651598568466709063251598714157532840402574243806218854376235272925625415013312714849700665642055932975984463387810934734423829251269750864152003461131077782467642734127003474925325063574839129879655600127209091269056541220908645949870231386131709470221471478693387558732511582456155736948619953413701904351235452119479423228845607076174567266562678462275370436444854183745023503090673440732296139414055898235142830444136811376654688872952849078839628611679141000188987170188925414316871381040207785971274667913707982179269375985287320441562852958425567547822380739010663863362360144471778727803828577996127034903695720109353574797186414705576195164056525441893790084334162989343999294299593125997597963474933217968911768819276035186769548474095370978540217271428387317366683888880234137023397462470840899689840293183870752564314791108948590219801904427992924685650514517281388577833895400776330270655122017997719429933308472311770490265142304013154121921022116212039200326467676295085692933519314035387065761323349257671959331622981142434071510702641428568444382742412040528804393537073486436815015100636189797317110425184215813885024245184443871881282262957239614236926924838318347715020558538501945937196554349093678903440598815185601884704336627096330270083075963216198335198817867643996132389006163282132354623252422741478938972473863139075476383965998239123690667116159820107510410844308921201457102820391923109447314410210644505236151139113110299404208934716785718067065332718955492960071671186258508023000063362511089200923652960954914744737754574730992510333321393586477902064062215012954237062737232026101022158209811056156830756697593401247502317871822783148274085228758135039780392772261322653580817792683921633190259356196290612788979765088259586120515041971239659528412496732594496049255912655147350418118229032745776195792338971933796262161465778246518440444241563180305292292197543644735348663999679503234224114405991119639036208832098836217597291907479358620023598798883909981400430409039944100556723721558427538107006042864706634140123419395255141992945819364980959415825017195750145098571277381262820863832712176119826866072191160860213595414239718557479609822446389632089252420090500733997863400263123603802192871386501633560558254465553737960152176642412411342710906309263840071762685477056168782184506646161237912465929575844215630944894750606286629604341717211580545773097113884617404237365370028152695051921062469331346621308076160263883655814063575247013983620410308698364320627142438415626829191566986681873278693717808362184367450830449223703619585757921151925141735523153613028755391418747544545532935853377090148965385978574790290755585000978099622184328518706675905655764104577254426510226131092990274575077513121631523985785150078691019552626025190866386992071846614939334174665402152431676239650866625322010452130374470031522943774603102244578783941101053306646332921258910390269713468361990495623715880545902633438338467592471303966005793534476887015429211506401893753004249400498454052195043427504837299802190819528018746293467592257150498651820097517992660011012440998060424955601936407000211638726769583288878713250575673817614018827813796459369612709574227334720668448119558893836143605995797593858121017893990321105180246535578437923403868249431728113368040165497831811722789452058652357989765645808289776104117016230953120538151363714519714915025947647119576069906796750043800503677652021574695114113866444662246850701872688234416676813652746424893861974413460238119293466880464333836817174119498787511080731628761262514836417993760876067904121151433830115746092461631814155219279771764833131712566943712997641651161052583661682076382742375168462009210005144332574621009880321506073055211400228262828164252889312638210148357570355260531031389310143859387844953352692901813618562588328602770072629984887787825513170484476484358286216826444002477979131911518840180986504217938182087127776444536567830832587994930937258652501876988782872921463634688643477234673838236785812195599763289450434801797274778513201395369863657639581985018829908573750518420540759078572181149269936371515524250000938455056156018386097658483378737664033476693114476353888584759949748002164706858054902447584437607065152893152045802400724149942440944237895324193114638920197162131266998454705806444654811878654924421248587057818999148546130700827773235026614358067053577519131339372828229445647403426835456154567538961088522866820519263919359157429895576172899319481568482375853274568331084277187638395076206020586853659039692025443144657072444128746346753011833452185216385410303323733821233474220791111028032573377738517355034958616298198147099385308551808338851384234880617240883582265919796751488798205280860006254743604096663282278392277541287525101781922964980631476062864410291034859349901501040747278872462999628396992045928913610355797512752974949880898914459444071946127115305382158393648523016799948043703748317620449335274270250670386832021455781272798892259021785031818283154110185341505390936263398937954327974020051190604166492426483411753684391963680142632610969853224584539152554928316734649238349829204985727058588443355807299689982649178585008868344583074845747994270079977365673752603585422793441556158303494165057219496553500731104461657087393854873194813898302642433007340122083877732648654105407294977851074157185597767700078106398966988802956706205772650622604241506739690743236953123053772309454852344674650271614921746625425166828924524477378705138684440565328447699751778115828370433716380823714396241657129676845611662327739440725601771668082003648684957178483286664010760078562075783056815473837565196008564615052760803955959370909159557372468631885353004381682988584731926413444534998436651716510890712590283573941507503496915848944175715089911248451065309145244696592345055129041528270766577367678592290860886253211454673181336287658852066805112367085199078036696684859525477796190097455373151039727548818912677257718676876395209469600117807015944666152322886471750430744282214932718936976104244210339545487442801313986826400027310214137210686032666565716464441853948768389606051309495508402579033138839814342319007874350305365672506673167471908857893978189811715243899722447167376304264801396675620969749476107898467559170530910386796584632520760043650986031776464056483447172042346103538391828445263685995077868715402384543026405968273854435102289865346831972209964687669520809920810510539794308166644161994482646116218474472040864442723059186676177344144031555339027426074574450522507490723988539921219557296079091393975359275292117455859007507867848613329438886984821825801477949069852797720932820890054382794434820840638383699233348912585043048452002236403596957386910112471021201693674251356268243168687446283324336435558510147674173196704168612284257690101186161297009236918665693376653544330936365275712814444414821716954683060486558626213053793137488938979133067345942363030728292684086824426242306981798174265437191177580869948220704190193458360950476693724953528915400226855403783995238765726864721413781416445589414363473011595006796485917708669090837254763264745451110753667909610667920080437706375978885224023692812754052713526451248151453303000722763632448624545193325206553130346030591942378620510691455890501336336373446896332164029684591911471417465343075959672431247052810784028413393266550657671948288278617435623113229464072296409887653551941125120175200288196275014384996490035690149449593370412973253026780813167994618429577865222634474600920915482959919753367937511947447165412997995875741672401024347390301970577799799580513525109966375847017081037723854810512361771907333752598032589497788254476575162429335969274543765982239134811516134046330830350617400495012461241049807100682113006707487880617576243878513577720584262440141097349083081628146172541633075257728940576535457859861572476509838101389330309245966411261315476800820077847351381771486600609676376960271128689221913506584422253466726221471260839093888125151827823279121282618627910746091115734623828750971794835133172962977310186502753229446743552969109358625400720847423464191500431961508252221129084561077416631326963353436484705224822705918470043079325155854269450033702525194206397731069613789181202984975412646878447919561284821006347581557038091363396257346010457995946735651564526132673914407458236121035701365543569325688659322190515941163099247216377479239332633366143298768155922748922784584262207561345503989119486977802847339703162584108363764906155994298130591123579659131071058430460571273509223820434421291581838574185467915077146099157188368234487732238044637423399965848481659350018218723682418380615747010901357333687344260570155018410510251475715616450972199732731974438966210257902480506736471089938529222640985540285299942097826434689466907886647107804236288814529730937804056228247896602805163277355165368177064222131743513542502797601566113597480753253593930312235381385585039093255819947678105801744725299071958849910840439211832267950712924193429715498565354039749093562242636240239212974402117286290684384233833461969743875694191131660906212266708183725618564358532875838834180368906990358303256514450655399590055691584314071155920095179013311530038885541358063863675895132872938747152026728860314800005727022634324048789632833860958565445016135681984899914424667389937763319229570629754970960306390763872283671242139851653729835299607350625599589969684360511079572722538993417461258201658316625072748259648728609023601707317957732667653289638755326404230152154858451392449502314143279541336967211467540869614418635611948289342110528322311124379409315656345542046313036107263226420060801545089273985658315759328798700379869752153214092839565608453520586703610577516897718477508785883262782710671362750363495643118245008566113383013899243500320766296013976443510812926375883777030472056430295222124630424760491477242119070689823607400551777100397640327713205828389483388765680629497112007559876501907593284709243288786430751179346546321095598583677082518804742347998342718807684655619401219055071962667201774189965166250996613787030039753335378676501676804171230122865019984650891938185944803152521927057597911987134945300081386618774748731747013724138526044587328200785701150556934331810764733510058943303006451392066650058016310371529037929366872049061292469764800787973287382209282267117598027344963065541607549192416143504780427782574749354037740906800409964972276063428569249243578679850050670022444979258035263688543855996294428742657857798392885022645096812066103082392193139325957016863358411156124259985073921569395805274593638776518292323904789988793295594557801001442709005348411324335939213041601764707494556492068401805995249055475874574818392049044078251037775830921065824679660898939952669854678782097284579209619175290932614174835339816182501548744762806942856963950863918213672667587355872021184426608562613590686903661441243075845418110000621664123601569091793399670166804806404675006004831095308367332992527282502767403048580281422504022947329027651738412313374512221087152073363794050897156561968049858183837853465168405848645889055042220735257644514747328229317934512702553071917737625651280390896141425565360916744153568481807507014014329794414087815334633756338886242023557939617947801422445530853072116281824846310195018844328624669973209461069992859463448688660881332183220661973473747759124234438557707330833086263038892024798879695630718404200240553796586410475673835814106611535778787928206191201294132721979513099942470054204689905212494806460728042600624448628229153733414518158275357226670363555130929539138667716304671460216519122879654505171388454094309864532306730766772268634079309707803019685388508312077745263887722228792938380776055849694305925202095276064532404840093863050909409546270515647885131853987963107492675450331645326144736686109525585675473324794324834843879687377364706463964726751262252945145314317492178177021104821575131746632591289351741089341563934955400716653069710476777418770732672019483135183506462142185654713898502419237208729757939030626784104225915075372866750080030965329794769468409907922896826032777105328860299724017646477973700026912291455783930777963639323329770354998510559961965115967307506427968735610698718700339171063411716603372202852754922763706444096019164757569089289280192745074266511100273967832468533467782037500974914062407673807892310742123723092518100299838672384844935871018245921028988524067322359358409913337850058263975814364878547197650350769313393030259570123196384401337945591856868487334794510723994992097931506702853518492177287279889175468398861656502275878187289140829758401342368657236769227894325403963680458127847952268056972771991174431814523095349484151501896228550895406747256734808004739520954093230664264825608882127980310498071133469425208302787805252920425254198303321539856994949213661300294500639291375644697866166235852526952018058797857833591503134111204766121331856120417455342373294660806408977014739547489844517042104001400616977396860068073304495171708033727213637091492641378070073920320995348280190506760976983874253592146446566806234616997869086297063543375936597562441970222418100896382587401999282549923678037754691637564580150160204669221934625961177775651745905113550374205836338044283966309441873489938746003781104454335412750222539550617250174402936318625983983620098061974083558262526384539873560183674219528288531885380813720965873941763300635321899157817415753447683763139376044521859057362915021170623377649942848693878416028263798772493136233652836604320670577620908614136779801166604783630419219741616337759219760760411725592107364702490901102615471420292842219054313931755519140121645881436035144433608478182044576947433433448282146688016266471842129730145121329323017818803510756975682893127436934315452072029025267140969700022287012433199659425711142349230696665738156431457542334141389752857798703504509893281169208754062665826341956833635593666695613674038171340260849903963914150244965407952515153031083818228938651993870789716422171737834769935086783589289720236595840234351279020130685546488000218261590086357851645995335382470668748399591082771110817980491753839028665433922670403620494191019294864380164762467106298793528318965077032309349149451298723430133610526154847994739825008281530033575891906116188678341262784289422994825505482650935669953496783980159107914640504876282049373691520674975454669788336058691047011194347987237316321697387665091505674159061827132406389885324190077383772555173517581710760881659534326300172399898001219249927598384578786704854150697527501883813693677146989155288626388030542034358046089922052436378903725696992338644076502385821386223884746001450674924511577611137204176682292742569014960714519449361082136065039559597221550154194435472643610069283322866482627709973937590393090351353977808024552374229495268692326695806418899681079566352640116395211998828964908304917318437949680689050466430000015306355929969031326813364397555968888732491151477511443183201463484491752182051037095983308148175056889778559224727155256648256911099174544779630689127129222572976513973521064953800158602240415217538720566171960926337918502082694253614289693359543000873572596774264530468237895402902213965409182684962429057166276279993774582090706643237180904186838040720542255037027605290016501209212114664285054624655419040749026797815290192703329836343917948062210567203124356049436427056061069854701843237522238569700105629127961387537663962382392281914766947371620203048009802949396618789122737538048030054431301321941269811368441144992508886456035265794335384121460588235276003515373084194744587842240199657038103734604550638972399435315253383039266452734869831834902310288072299633775269831123455909710653823875173887287925133630931284884315520991229804182570470816022877117909038172610012572337962854652284560707133590420254278237498452087911450302732926045043290720749217262336244788110800670331088561523042567600877195921053649183530314795711771864693696178703295109041981468347526306179556537225761519024453111629386521952150582971005093120549474744931520354001083150887511852403207790189209982773210651518329954493677331749728890948854196749843684879390445190690160617502812352500305735110214739104656450944949623155522559440654092993981444492874242870103793769893412283853463121623817648185979006778014379681882837601788818005902846326865272872992964787082868491085547400612621233246540981905955843960771165100356900521121505760796017451950042995732322747845102952007614127993357958210842055536087230466336126725830413629168271247899931123036837907947392133802886064181540850940451600377568067464932256314226841656490465167571337284768244315211372930884118750102761906762023864948567917048332155359486667988955269957433808621711956102840689126946275947560498524432440569079473567218643633190326713038699989179881756617600096718717332801788501176064422709181289578109630582884876751582259649375905460410819105534965051279168863012504998671579639236004874874519094562370844016158960091195315929951231231600162981405782705559922114410782499757472940909796325203407397211616908792571554886119793096807242106713251189326706107829361547682085192908741645049210738923843350666031685857077141156364593456815625232808099383494203960618527022090073337639549899414924283457479179000711273757278755038660996896105163463964972387237826834223309819719552347443819556948439197070028060886788146639532041320064149577272520715928931028465904488398775743327100564239622605107225484641209965569149240339594437900882095838714947993082350732192302975941080495146675375203813781546191563122335073002619671691254875640257099567732054602889752123021349080426185810799676937252685548841445716014898811368771284188451609468621537198163654011333283480360378897714359486337171950352098641354221772152024781343220188189882601258556318923068422358379113692973066021509989636196266929354805630053513061847909994883537395845503494328147596497777347300320501722938627255741708339097292339498561873395633647578739819421401664245460285889853620201067062105363916920967380878714166798840984509281546597283013140350431358422230556453976257922818357261323963470401526783163495802991440381525412319003887569949041134009678941628602036504607609398352118824114716770156279484106682735716134842200352716322222109756895160355511324417764256856098394432968206382813777909617800812692230603224689557002445591210457038857430608746194694101820813483357114801015675739588676827708400858243426684602948078365061765010975545436409914833552523903933166711853311899708493816325961316462369576559396447186432444282385985065146636749455361658713235301298276401111718518016926752509429401070201274084473708610025217797638533469268819939752055501760491179062089148420207191493035635232019316154730319778793847782027528301729821141775049954197318483313466008108438340123554293078291092114257231483142538159270777539866197252272935002997005354590958302291465977882915918034988964567046351729640903771102002901667975967217738918218649866917916230167897654324140322005406424906488156059377932129234426260537121949330671164000872082294663648489679671639449447131870908844621018506622077441015477728397830875499593923544328782193460232683235635345067560285531673935086671434688784330327429231099297522648122893865433252168014653829377806155919956988153327500968766260247000199430198702666789973468558184949640289196826564226433967733860385897069591312686338773587205221012438488904890215240537531999781161068798677531421391353511190889129784722031429750100950726553167260575612189461383985800176384940664514925521979375622037663277262783201313793653726475998967036438943952985603417354217785670354120243463289424056277495521610827356274545030136790264724633808107211164574691078974217145124260020994879695947872083450823905700931543872115348914641285757425477569072063079248117420119993074264014829645127756247890647114723343470323696286121060079756054133903040981718907979444918566638602139945262566167546288693436394012633439275466367404480789442826370015425304596083029205205734979172527898279738932328082697983300831135540535002302124290580193034868444466332587238749663907286561914281585089092973927609373580406362577282257394195152410438262602070065193118939268648796507651885730593290401406711951640291034979387202642517643861271061899863825402085897088380025865537749848462139756092665786518069679631889488395179822403915065254745984349309127880552739955222583464765180304476841115886783187369442247187022915939726252782687092985822377065787346021130352461709325031533410807298936711111321221323869838437594084001522865965667861149414040525849511104118982638818306587454101429315081123269099088604790217346665742396878757490838827656001146923353471543209765374556450517897952435221532060507213991813500477779454060786243296225995170800588001816309555386752705256354863428277178767411342878387797654221152220517296496081578402839022582665992561742574866926008218572236220383757111946148252858876171371897371520832771331042381238038996931482759605708795209132553416712837067953492572287752192195860036822953899397443613404528481478893859224096376196904433220782430992945295485472216234368726882068746766223631877405058650735167810138574684303921787185064255442394184247429602609168615730815255086643787003959640470857502268295812150819114708375475501431939094658557870548140214559399354367686408489586762707646532701007018871646623617092571751986656508304089500702095219129360154649570105456165102552753717004202423566220768005773888726139298785124830272220237035909570790220600803192718116924095355515679026762606322017278972494216698959167819577965023838544238603579826813070175021643088301756440627882268326443407358584288703422440743601201362349223892553657501223347941057593068386844124672576470740470958948495562389026567331349470370084221013130772965960189072134522176366288288740802026265014059047817752907625904264138511772153579064250691723623562750235442145761616392373388000372719691963100961566822967341884241456891624841491008977530323506607493678977342329339950582061448406370823745092257354430874059875339437098167973452223794053687166927106252911426237566960611556146032576763568669762223823100221427041845127391802154376817865530752903007763519618637175846639196196545634676457810650626628177899444530445962236410716010520505721888089706440921353307430120014117422470551668065090592270576731379986708338381069911232462296441282633620031719872628091712752956214548522039876195809381372224774819665680027466605549381823574285338711856235790123410359291083544395352032412781018971583430406844813397471600450269474694914644246328853940899003416552639490744323691496457597403354574277089814229374754705781931020949475460490539535779070416387717730825705788074431374279392619458239746621306815160900291118291331881521437101087735831826070167921603662569669717132085249779762954719162466095301086114791895202822258299784714447772260691828850141449129179323027090284609991914825005738488918266298596985763346935772421391635304818010638073861435028869372627493271872820727021133986897357008614615397972074137231538652563951892634277462285034902455739426037319141562092938021233485071944335314396145741281441185818308690271059406650074123603180209418626227210094210139592927215730055124651731805887251171099502167521280619755795765564092792263238867485324609196313547673419843648721875425594781469472862070221816447444331779736228589836088108747546653499889941896424438611626675982589483010371227478756860144891447596838783923852238063276699207660748503006402381176986448602353864381525024635105163645544819387124150693483886104077836434366195368948180288477971462747901998370957258814652158338243470725218699046926226933534996525812848722883547711454102619140006792286215737866442466337292077423484202928317302040606794040442594520990422016692569667606314233892115872930564798347434609967061029299314574697490690612600296313226650872270024591632044039307670587843748755511436601379712355230511847753434706751472478445523833803805461860075202937823633909445286764405106114033603689468402229911023260130814092364214774282861445299060034099320761821148349800656078382247170630899686429577106782552554591737640189502414249491765051503601100809758374852866193285808991668874972655365206708617392053580095026989248738851534439818313958227827517504595994272303804421764642724045850546747885092363546332911350362185755470952217330719948890571134540121391138486716696340428197727941946343758040034829829715916151058845696837063655474164308252365234611497298037553976337590327884654870588916213087557891205187535343063930267864913045225993649349378292565086948071995950775627770765202224419473285592526993895218738707104288442905897311047377479725232310480754038608277826146905438188489081683250107457935862621027631248647149129670374395189304448140266059075643736233681374040604369761171821490366400945756930243037795329963520445551738478125316032544459173962959858542258026229262707853492764796217857222848634235299743916088428019848239093422196988316819530274894727851844400116640083077287290498079833790711047225429910490515836224501779941472370094483626922187317529059209975559516298554868401440643767944008155895400739683404174287619424283764677544292344886650866087938748056523590740128132426092858898755482996285592858295068934658727696147215660477094336634709264474520604463076703028271707963729254686960917454296634810507568065643017035355380698528029662592359816113827506838535323142500367718497552610904056375646817727280690859418646821833756590232327445378934338287385432926741803181314975545918014835036483112136311079264510078858918575962563697993319421160995262918929480554151921857368926782277476793935294061432325903178077812229673520648618662973493660315767901909000851734268242209259913794225158532248230072581602773166286597625360690254228647167823003154816954641525405448781141880940164480103049467339752020680152319765602363468121478708885546426069779960968972628428000827915988277512871879217288111533684841329394506135320132150813138639827009088541025250734880722584381804553980455967887417250637630686018091780133228254006504469966417661965124235547505515799121489600250509776156936511197111072171535657913634045822952875704438259849843791213011496579422063574954439156827667118268747476299807328900211526662136830075032609734692394331475031926064228301021231489866065659043766318007122172304757660460822450849014788883280714200244201941350403155253685356238964089546674374834404923466286950647620548733619821975813782218634719116542280983203470907414058968100232948233867819898599962743901292850235564818836500196141140944430835935814674813378256262079520738910161908985784319964258687652034964925162067766497172035460079459956231590342773966629550971242787979632620855464276712493577874650890978488989045192723554956544132384132342393408350905213950074127965868624942800729424520639754343403432412867026515265049430659601434957301699954120703061668564841838270820819946456651180153242436416944927845603353313815223073391024976444207477648515044231924823240589492489684171464299675924296648468752688633696000656602744008161247722748519904340470821992227850721761054001122089604988195531066090766939749389448025811527448632599992846536998975869767768075426974171024274028780064245788266572981515439124895240706062728890539008661902484555968257089512473733851729686943302864233638582767936097637433888381210951151414722871109185681503032568013430430720788570019066868006711750913848510296435697976351453140126569204567330812582403304604522246246477974077765309267699044527907924017512142350920884759225806745413282568821454079630868386537844617984405967678436076066822581449739844420134235290570474670129067134357827763623560925160576187778309625838840760642594817471006409801280084676115410729575342979082564641576651846321810465075241845531391778981248119471614434218425566011048844584633392332956495442475505429322873362168245640270839817592344959199149599286999651155457414631137144842107445730548952961165506278411219752790014928053770829036683133244667877470635536236515405733148370602779349216861548351237983602904502001736966862105047123129407654193063786006808283580865187625230541909208691238867233255340000044449054416291372869462362369695696355437484182647114593750106768855160176955682445413440288334829204766691131683925116028255919700278213634669925961037615296631716901438392415438475989204560675468160172303612740252597789964922092862081592908832965701048777707809849797064772949035900354553289724189619722089748468620481736841882128256113166429670681661514554258869639319933412117795196543554300399144190064906657116091243447418220728717961942380739325136839346448131133416978743358744112905033770093060343444405850363623887175487835877163810683082139723650455968511249537989285907343131159175787358325054036862992797420579631551704368535742240324911783521135563377157916581698023770837994396233736885415057583244730432097796549033651181098115427946248887376891375274321511451570803005768491354320480052550601188292708897737594101853866812870990111752304356115941812515007515382007520302687819937528965537584762828917933081039877048410010984843930670578215849351953710844950361185749290921443057106174162172582148371134820676156565003890792193156766053037928181282936149976187199140032631395688334318812389387804079218182440560967441166208968269916723224945706803482993743282299820312894854397378161364027919109215974000680204530707704832825951658116748445820295965496354618726796475213045104809703075777510620416590396096568591161122563255807023839880329850853110465798931254075480485851957712195887412835695776679068085218689562121563905615644888060391247001392195108475167820189483444444880212907131495805997305318157974788902578043363021967900436633581584431662624589551585284540835906027010182796533071120273153957016134875748075304603643986529541920420726601419920245048625883627898488973381682265931394099412249571082210143301105663185411198184934294936404932916635804530032651682160994099632362368997171053682770886144515795417497032716283823146612193110153983167996629054604540990915639164890284075086152798492036602428526047421915587127207976322220996677240668899207811140418718981036348788029543732798606823714119420331608078139005913934632497879041811056394413164408607775938852325380565572591398368223131859741167321190514347442027210611057840599067923066875068131780103771824854916030849692334347710794148813752265631721357934028754876420655268688427058840487799540901298982681970902715264394301556065269417570647594198924516929154424036667328820526064474166974392136367799440480525032246591899417823031591706880279738339892837294979445289167294198615905768724620918756097397253588175717028914599550869287807601090812575460320895808422963474801657673582737855803134509440291210318116283065164000457644883405229218514125871520408295288477456845838318190345813369951541083679722878758619348180809579928951995435771384433573235277662108356036855371704729394408719889637315053908088875163178786220371939085181344629652372915450685660645387581490144768572078532960934859154213208377928310528741081437821128047720018112546666226773948219195884876378543241708944768430800078569757612472816926452085985635059261358016057343000857225933604297207478934637578394225558946790723038672197554475947942563709812020846917100942195672878156858268504209272097969517732230261350346601943206028973837757763291183155025396096198811955729672910520107069615294888654226427652340956148925198443081999648524486896888412179856846794365725209515879315101005101652190822605567974058171812106739907410439256216611336505945567631979173739656049401436566116004325165673241294350856742690997334597848057911677073693736318235182924319973995169928762384668046743795656517573798490992712017143509388343175728033927190396015565101967918964810576173099419049925279776105244464788913142526220727187439348700840350102783542206164350353810706813584773062988278197439963482861074830791568127072968646298883664663267612271893996588433643675018206075922605094275994639029348668045411329521635845611371503019276353207234693269172727153304774108539086552230518550784251566001579187999485648230193235544314121827454359008004253794530498834262385161993015237064365564655083229531343967625158006664583115449120661613010824017911233112890837106452427066867016437749107271239124149854058606252356409974772971947523532512367415843857108422833478624531276150109421514581047052759193990071922977131680882660414605097476943264426734825929813937421598600301416200389680972316725768870575710445322347041022697375041529927765766470293419434419225570070020610680064110290781099349632861283062953259830838222377915400856787651190564332887654904093384430663854321557993518662734193865616973807524837508619291193904402352752958147937203493509061475564193162457886071277527457779629556464832668578984229436932009076746064578564059861488503011791426086705839730446716845739805345103812642719347923704603019680067260464550585081302279484515936892119846923238282016722317449430233297530135383660661434112467177189216490408132637641654436844980812717253811591706529140310286061705191579898735182450733765458820138146877965480586515982623269419777794673788737128330724047354577478414882514321808305504157946372311171889186642591745103815918071085058169154711339183928439687512219284086764214798740006300743090591136611595529505540349868508738600887163525552213639750770633528656759039903975356074415539146801020346482040082221003726171180375671615451029646078182660517732759330755184400141217443274266726229752005818046305357305636971394728097290039342715919865454311571904020678312883279572717053844514801927709725537421220024316427755480243482908615700377535982523762831531540490840168586068321199749521313554139641376588027361326480629930368143040086837594433767831007017057964199903947729176613321104348259231720421076719388926544441513879266968912720094479220002152646331159619444188091707498682667575015814153366156714371972156922605002810320779005722851671150987054764289565397263746038913858284138787155753268166209399569622507585960714976124600737553938460603736310898714437716809043719229712871477522364693297143727503166734517924710029931713967408822473866921361373609267375462909005311132985928191291301181168963401682121174680993846325975136898863870436383156973828607001115945915779491853164985894085945096699389470016873215821269174071021173594684265797658923302527149489754795217016133334965952772511582658435067028558117392467150078742236729336729740510948089020709018589745664387269952030036440395065062707966497758373655751777513390278250505951759815855232996721354139012372913637261573606762575634363806779847173964759987025629560181124768333005543402685201687671326515065150707376861999857656329209691729614764252165313548840221145502746269040429085437418679325904137829082779589161254210867389923753872056406681716938819741023394462474989247524810442723738150760538946612621575377649437344214870629316531306485909561314541516731166517870499859961899499145594675685271246816362361278339337741314813459772499092305962301780145983644425258687060675138623214500790164795660419353139757644200285943776091394445666026854857075407074817113833834835782408971287068742535047313995219082811536731982063439167049997459449382888676121501353982962993452789291977934287370393180344967460631730647317837668573235695424336327632564760204010596024026255169661513222558262103988009696887382803160777909897611293694582458776069004425744444850768128274053304652580838113838982174884767780677105717917849342760456506478465738441230227728222235620013936661912304478884613574702192006868300013839873495551000039063365472116675287944230312487932567970788552204501082808343687670255933728496786276505362501879973416636108806097414903977665912630806534698320403776860084801947967692268941485521435661920208602398924537858427585523279496793880748647248601651762009498020035869946716575992222917024915728530717082346545275582473458363363309648980118492039372377166826534985396698922979102965676801563312529777534769345846513425499370061875870355268190890147350583968537002612441127674393492096396707336158935810057315985636574563479478577909185894889987921134312684065661265428533949043959863310453952148361187380189566950990387057575828504841546971123414662093308656285403838856616204258705477740781805499914589184055238821545153962895893179687563351255105327978813012396531719743274028300648723972323401390886276548225032874336644974185506541218932793776918996719470595650161171241550478984712119295269206519241531589627443016169576800308039609440979394393837615912899515801139244655178227631539693041226244873140167270050387843336210271783809400594233976736197876901907152326033711077389418643740521812348743723896745004246641487646058215123979626659974472835513318573498388038724821452876183938115840321857587698289143975494667405477374590260530789851523054326534594434872405073328634111703501898780700312201967320227977217167019880481652426789143273067896230558181654180970523878812617546198846644516500204283270433819433095222993079913375689493957022592584225970252676905618615471475453059651682338504215277565396732129431683759097107098916107000806772442452071330405701943943636606928327562172825811184753484446178865549691348683068224795907942499260696781964605816913157863665971832043620458946558732604022380738743191696976661690093438830069953836111567634531031073520150844224921353513060015847940393108168868569635606890464470361437374747640707162715302520250697405386354463917989095049858800879639131291797912914018635007279827296794633257711305668916890584449095348036246274375346935444353244890836289631841599632999244880013045204963127955752010239551971145665502795672052738973668056914363712788427673277510729459297501387476399199254499900448291209910439256958945963730493661698927616468024179398270739375828483623570654207688555357079203176716826495102134143794670384343374619586750240608285725022151246230465058132831044627678577180910700319437481932804953230336639429881842903698837659613629496838938765675409346810111503450304242263608962775182381183208398348572946906117490831289044821366599618178462376381583536339186572655860310684628376764300792730157759425991104688883149032327803036389529796585392265853632188376949452294553864946679448622668549403183350875556304323046020007409098650828047233948119285669369162883001703563589391217263836052438589499141961761952327484508867132428279378259447268025642696787628750901958972908462661761252054454435180326198119554142028785260532814431359583485834358603500694491214309123935443021850838387277545742476615995291760486335091663145323173744605092695492161266259773836702160555621936806066596588280117209305133971644796646943313872369547570282391217830769892605168822945655348010248892341812759397718041074200127542105226780613114517546277362567262794779270117468026946209051814112870909678811377178038441737096087145935992351068415453080391455703787311339775201081768865150997616399132761207531268184885942818028383432676374229838324065318024189726259266291855870944220803027475812369689500742444355827557705370390989552176047052817368545028875531333101814739994903276082799545020052252578174528488495983431866957777973113486132287303027027554794941096933094145729172774226397584327876872541772412424984714313950703052911950676956127074973720611984358794738704840731160977662930735604439268413339693324221398081933004833738633222782286492601830776023802203916300927744920212697250861694548222837220550837481544895615199538641108601995350252903742364211879794065374654745620783875172051307624075383808204863658051393406306051835667036050336225333442819463493093060137390794499200113865830735700250224268774352603436125037856181105848382674847136912805737738172171019107589628040282616212424306734915390174008037130486986671065667934857479914440649679979413208683517728400795891680264755278382812610624534074553898698118345123506010856886122352449565939022646096116396097260208927291875062569067805913203538481354150389287245294941393329212814147569686826410693006785250438438659579260719124696271409017014731914466512122922721957046268429773071756360225950282654090328810548898695288686006069059064276011918576386578413129094198410300709333477141729460778921736894588441173060549043452020028569649476593636954709083127804925786518812755312466632902753882867070357884931219255222107966178794876878437195376393544841412237884881376000416631374972077521447967088095686423910684707123946319598174443701623714431135632305909499167406407303907073268389277496656429894970617095386383408551157554295284653959011723833389877034380627026669239260612671241514562428146225154629662777683846654113716059579488177017442235557677582983486825663675717500328856029958963265160608524470126655868354879684667549011724213762769776176255205276638851157128190295039308359661640262667912975160271759992331020643860943995835327134528389448273599450956454509893875129786211307906609144017455010419607712371196240702121126874688710796129702360132263096742187490720328267846842789316005641329995076638591855441823311032015938742011127687949088626908533546786441636466021519672501141000337020051418857179135087778399883144646659613448618980908324147443389423356398089151530434853937552227330354412503612192411560382339804634103168080989512643760649434728115452640417157503960232990038854667978932701704753123539378127196664820297348749999413958237173316726367479132247540821070353974228477257408012561788085193966101551951970651829457924640505522768811076421231892946210895540531792508000417327895325410504261871962921532001448346189477637483234385950042090281401113379216040387010482548331216265171959513379303598984422233045351381286695165656102792196195059662159117507100611260869756089122851682268900431588916884613856966896933028754428327487973628146433831050666876581200431242281450127447165959830995888090529953203545320947619222702581671621129335081887726726137899622288015178339647818105224672622801866116805405170633966713288192753373459845347314154916177923017924610463376497445934382994907124540281936951401181194746197751689570455556450827203023461677008185533930769629767592926428384308811714326436864866410282611646670153169250136847138734064676648310527579463869580861190495605997933481895376511180343501221626484262210156992225448039623915443489200153896830767830123651323832695381135156922256165166324572558664403937697883752400117756238608486202858411277389274400881174032824545003302316199009264839953297243404346999883592171736703800679998206058602173754083461807288005865731235841682417936826061732415875892363400109034507509248268172823414538682523362078629896634927642552706855384957809434027750596737503020939031002165470754030897693661237016559638008528327795703255060794348877041475218068407309376781337319472449455873740028614756904062032452288198343887795391871402334524636570639697300859228071646473550921832538274574591727998937872709164210886347099540249201362208679814071118369091642123031675673324229746602038422457763804390918265838854582825845132268116436788920197890877746233107379823391767212178791448897008229762100052375443896045192782201709465791457793412926743244703086702976116114372954109510630745662157240013064399175344793444501214601048267187109330510854510086580844655757785665515787800080097639848390645417384856544773640332923640392054151326336547805779051065741125139131920319143413790402965070156901502418718521956983274577017573387509572057115582030688155802375257843999253385244031383902247928289240384453366504901341621271530851689678231996853508228375446959998513341884656745016243556172849496272292441888355573112575719295060782366447726122423598854615833349912285596715982462328812280567912790104557371164083528628932253020602304573218615448655601688867686994328257182610946119873132007202966894495643963274405050950391741718948195507633852133109068744457180414236421227974190658695015202632353950237122147166961071264857325407505389285583087488304734901230505358921447189204979569228250774879671030257238446148168255147922920408426971985389851976881219634936743043405862261851564127419624321721413111903728304348582553021825187129372001221202515681726476321903546010641963782021300657787097537862494103574703631836999606018659350227521206595656287241808273048184560514150906661792126755250547817013259281164382163124645338178213998959655918918532217806656409274741604075084538956169467547430632830147769252928887701517838095366357186836712526556381302030564874359080513927041425127021187593639789663061386068649272546887683213921239023219102557058261024154457638814901934586634819162509557043665551414296532813112722906477332704737332207878748498941039906420973611659000100431056618511224450160802587997718383449372387810251401443905275405486501946703871055996488842966583149251476730326295373120826567572829823361782517615042377469442195326318126567336336272905291585839640183540047313012053608473967270771127832065228554442190647324785346381363456484603429504075651784044895424952896928708792899573607447511249378759837561553748081217368199224809835127766741152801528465957026776154982278948416418838272263331488311057883632614955723659366476223066961954286998289697928950844369255180341220418131347939862038492125101332343934645724829892983661895426372459720700545412245736239030411551425700494331384560059207048805451463295151146101102922205727799205667570191935981755406256428391134713506726480022924189859346940586305815358503581275160000441468742085018732036106943595425080798928356967956461061561261298417137086142328012015789620809846705195284935201911594773746885233458007787821116240071668884910253609790579787932595997405679199328324191261720037641304812935897807557941893436397692826990285747030389812117419812010537928076498128802027860230584331883424034751860644684261417731767305991167602863378370826106161983554724183794872551139380541390795893824495087115292761381984368466230720415674446247617492258660194465328006933529242190461771264574895493426957021602254873157621993436938723533715510354579970863893203998680417975139206570628752727300983103429175387412055227246504196508496046652893657044940505417583717229625053124672127341355994949168537898330007566687649886174251895741510827875294842048305085072632452569004427011625007446488796643571481046694194740655517059674294729510855439499146047467653328631441609834069233070271571484386469096604488331916565906074496432025427309912616690180260911477520732016239505412194638019638745357449812046370798362522830931141543405963399492337332732225369647331875424581081012691017267231007068042352829608863633981048361006038199370026157425232792756758375693250546191556327976895795529862181837310543169079458390252701095221848278788199131622576162225672428457237039361100563877957260188385895502463402082574739490468963700388318644747710302229616439712932626945605610262638372571720852577979209936756667141579678889706096795320905911333193043357313370231621238884138912514124937232868188451348036764595049820048461883882463131245411512698614411071533173275855909826386117569244112986362294500752921865481927661901189516399696793179185733928514980986869744506677923852839040054295057407935979264263429083938650878949946659815071747295369422491303691864094724210708288895804632481953084829238937794911576341917134106714422396601143813852871262993426492959551130164165183420948180777414462029262644451516017814814153780722123439976775236529751993434025933718361431068403350011446373504162879321657341681165503488518443963977295695164288433197385227977363869562622403350692951543010893741967132010419111715315690506349309958128307134876288937319194405292822754043142588570217804581815395972495943312494797323909694959924317585523141103390102271105807552500726184542215704756685457437491244168713346551806720781157281069934392255226086782286050551816935696378891831680962858415838173790564743966698011812543672599309571287714159613681573924313836793801747489259720444142790479047732473226852684860024773049159394302647749451788035818494395438255360753206858364898270236613593533879084419509970824696055024737606637883805932761238619001884049632914486193932921621526974767435900630330322566143070018415112056952356078117719040875272993948191776771953895022222844358906652969627569092582945400352999219277729647225097627586701331852344830592659894224085575030642295906003457721320990621970425844852288332629334747951359935304100088461135998472211120833307936265124930280897946873134543213415012453948202643132833505750520170228478971571771432287046877717095554764356038343936808595981163711507727261637174305372502202094015582266652796766863205197770200456448686247352769542142824438693675610827978547577196982686946897462373066345929157034321629744668230692810461513316249909579760762505126386285535152127320128951313706001111250136850922231356757569412991178130553115148912021709452851157190615016461156019734888052629055551150291120543985537862436752070431038610268624682754183124534827301500396553488486799782363179710942534804023093158347812601151059180877095336497396326088290605090581380733106734884623788994073894943338353032551196884473244927528078269962579214183522735904692032136230964535999672409769071315780286891052938640082508722767574483045691348028354775263694755702473080921041113717151294889911501149867058100554260605651263067559454053529319360399126330509529495022869452429314665706290716935035233853768823050442562778257707975788571529338583624018116217950975706368445464465238329048269810689823202862379957026261549287140738913444905051917946744257163703846179082382022809369032182006920242175024689244410930250610094319441991652493232885441865266598955448507766782683844277251851521968857610373699257122146400786338763727044072011452151973149145861230285510437439603192769046076072089541479275143810623100061613508117947511321353297180048088177701322971226027152427973866695615252521126620589013706379853157720826621667813096625838609933482366243967611104445255031069227103934569148774390635185295079982309936328826634279094015771884880851354539572256667675940599697419364396776971417091246659300285899941970055796946084585443596452017745577090424859476878815022333849435152341507206342175079386504012433745319572110544435386938749452648823079287306942450091114145417020698234455048043856119040047576676742972652863107382418997594809220758478651760961416162502232672440254049809848787730107017253211269505201285905450075291751148236397960043114705496777096947610775348066075864587080500200037731550205128677476687166815827203197012880147467649729126975454116394841491281642851114925283819959423082626541050572534033120640239738016859550987343994061222916284744517735272812852953449727636463913896847422323639778683620192399926075029700640813424854267125763079527248557046918508514222143314246340104316721572453472220506902498751179467830160809220007656200134442251830654606137988549774595770361334280180497831329264738026019242673174512352039522807756066056608383587335744434382436264622961485070537830128783763478939227976815710285069349974572140109781821501243993399845173322631357329258454826936760984841761696878341179601869803556096385043634947026225229983662779222390215254422072619389866698850491590987592204277453907162641119468535536393714040347363834988924694844461615665277514871063357606159267337722737649841332988339302232331247018271765583119183776050835348886537604991774746364792298647622729803947184366165093897524528520845503774968136281649464608019190067753926671929639869834993488914179071670599739865779615398761781764049242162969540023811810154029929521778594224299068358858744730758567284643603788837502435420808610107885420134181474030027140114513518135695746392099466564386871871038642567695229237145846111966572259010294325267824642600197871710044130763597187975162890491679164673944842662607011581584810379510396092392898507082713665400697273779269193850265145791944348678188844305470162902613272129363686798236367577566485664332299700640397469339683233358552455294549809443947853185639712474497036408107811756260463817298816511539505762890559532546658353923813508825863624374491297317523290258333108415440501011754122276789160605968099943057978579769585493342969567568217477561414532030841108837142355236057287390338079250561571181702783105909311688445471336421912263483271776015218827041645955415082158066092822589442903893058897695843545034691889725234122134974570482092167581464502716341534100903508308363513311006504477804171818685217426312220833823516116938447591231714795489869227360405716321577449981248793663940761286035606592003119130404777842786795536320478863908522104961734228209788331960671374910239380840627750081577879634284182166959496392126813256300681969650195805744181809946550206539358079351637288372301266668832572364748169295254568133160004339695754166237259554884051140906032444113000752798159705159109560078934952046474919881219592170110299721143047497643661741001300190807289522965569352845995330466127596821042768614277385843627714417475167358146667186063081663880171010685953617518461929388090812958898633409083621516134997813828722140247557296285291963689688698045411916443987115298611108272448946722716892093944390640414572049437028990642869822504120980185179167869203401718657517938769503757873401989327445801712132640052862512380052780100864611982462629142194294828492244379689777279307519364336191384009805874491308171619350344070482127631514567583946278255651699127087536807164213049217121557768128359970437167822973859021147907142696599754859178045690265185215776974780387281989331821421864547124601394905834521027472827170699327046789037540559642943833715045477517623817417810447100320029575637101156086231550505331841336547049150614443617564189138179327207136517851838820171304615216387946225841432089713059393178221390855907848609894089769465144046873780199971355650302876436849763627431824362657680431134617433531670301970975575250351510152526339295702399301268894539866449692071288211262530780422741920818812491523186801677839102712415437872324535391247066304783753325159305135745786368960554365545631244898480919310375665840117424634586685335920984707665463544739786175910021706235492186206117680477037864122061365185303951818653897693720533649904459495370286703265126227306338592557547225347485465163009257386825354161486938354669240967566003714453400403692040748093498553964351623486541850325578379278571566105421303095763403409732910831636595786087980442083584184851005466242907171719183974523158240701432070022539454553845934610158757697442403223105151754745878876898955115317340984897239668677807700431643578276742328779558183553506562293570323843440380008572152822185146404238791057333625174192533866168277991245008379806165532287750719806608495217886173838179496984266124421470685018875169061681502278698600328046120616409802808090571755075734632208060060124670583237039226746095264190950807090430682244757431698927668016845625796127566090995179343049096433022259272396636878338955650041448418751118924304955918675478343224591514308911498414817556050843517284924291614946644327697871779049104020726128738790333376274660230057823028552451422089395507258009584339775541894591598155554422535221459106417395193105584519626733338337478043271768147282278743150789305595315788811500368205808596467914961493857018326678656440541511112577009709924895365650601694455200680018197731690406418098794118109015742360138371752338365969977141273287817863834462355860474944297560981020427669612463725767274098855077897966786877319934827629997272681927460260590268218679270419391584193921522986073988385893531021483486809365024241443375128727430726643232477902578196896602489028724537509447233332427715968486532623505401747881326557543883453824804546652479680976460748759066523024232729031458219631915358705731242253817865732908598085022948801498754727371393475657850546418866178886040702792503011651676569645036064682228604490889928825822473193159764615834342252239875250339917961144324566271681828108245638911743982581892989186749693541083229123371328320116984304408410972602370735366020265483807378388723338395375644637517701350828811760490575293950868623835650949695507621397858812774083921517660106678783016837037296150681739516528988428311583382006747608827448795694413718333216808169450864394752531930743289183823840423905181005202384333330817193353068309929273830851677287474485004980884380212680408215915114520159080453002110945580506103263652688185478577343198892469826280095606830082051129040308356719291457463320400381878795029716862076480017737885508307054764463078761411233806421115523601814021144980093387641157403512107548899160139733835210421734730450591124536628609956559111542210961926614548230305308307195485299432000922252091957800894528307345695933904606811654568893105103000530705433038377785475311544257638435137793483235895949571118371418732757581928966723396686355759767939672882260443101253693870206101367248025448156346573740615925567321225180040535816138262670148215738532779707606453804686794696468104417281438171017712222324573440971817401505486942020077229018616469890360857826662753897863744096621247818851868549561292746822223415992088208571726581522443070784656261069392779316148555599588017869557417707939611232182908973918223851127024621470349216556595713810800227147006737911484641972706849641129032574212397677064710364249928831256576735647342325864039694705654207679278428045448953088986938337498143092062297532220836297287779583963376337604148148672402041606051566116359320968634851931096142034631381528217426404515194170713704179160778057880181002002678216240236458181336672327025598598684919776277616984176915407149569524935569379385026471702384013568488124896069870803301803713229847651071847051761807490560866587160918099914876431476892043745280375996996357308388828225375315928258748212531045125229699206935667926687573838673623943222132904909949025522155329679453523953986604945656678108970937002949668648353742481336138324360752881286042774419086035050093090098915382059517264076576084016745262607509478978638429515163288185707399451633925960033991648394442064932774321050631641011142535738328930358373831300413697931340164601190902582943219070359718615891741728115477041321512186853905150959391341001612945984140629781755180196102983508503496531191790670880165700111816938647252296779130206256816274224576285725434224083950980633193569351163217476867417407870761580543094083913314688667575067592584886117394605442187051141433279122975141440994801511052167130039678125539096260064554484636675079701840438930890824381414596375220744164078702337157347797772694959677008692528516362404402267298766300963840746517267478943950858928583724483136745223308975891000443415371820809422520536118010592938837507771863823027791341316504488569621519498986642767033388664613265069494819183943884482349013067643932886860143098098476868071049384339688707222958427023095379117795978002291208058122728763061083878616969340993004341854385982629717483294998848964612347787421620879614484888068849187529321945526872164036567771749939006071926612596610865517625489587017361875411492122980978339119919920733996472882466433747523572235932226850721422044572790196622846554154464520290531215385939078824563663937380873903210439397365639680354795303268509188491936202072551273837638567925274395726672029718812039533230384575217847943939762144821319013961906758482327279381191855364911693662288351843699359260775005907961190333795083040956038062021057895760188797586046677537837565801019502208732154608259080840524785660522380943483083366205169889379066290005914974291244687349168383469270413580226979140959590557101665950597845278686229398445710536628350453797557374394536732939720506860822525737006726822066102477109532913072072744667241429278431941698307544885284014077477591359814121120537259256482818351079093701502125005126780861915507114252971022783953751628657417560738039473338997385193021149283136183219108472372414882439112918951332052975248622604402612031617004952610581414508936380857973304332386026055363310373167702501205909477390332275966653485902429491336156966200246177590483374003183915163021408174004575362124565604891029060337084525718635033716363631848783457246508839258991406453748437229953057916176054282258621756546657987449568255148334130550554971471618195449770812332092012437919526336072390538425356460253840205179498359199857650287975589167783271530726104164838720008603939259582880897681542828646252011544489600565578652857676959760786093735290082932486293484662854907284298834070278520647229062947880990449269735631059009293273745661201390530818203671590972910348186897923644732704968308029676872674819263446378973259212242498163273836740460504831305582996400396381106892670646787685268967525975869637175252279772832923323387397499512243329019553047226668156984607679629228777968891361374813622210849783199274732720252570986715393204441538736570247488418700864908717418223730264593141158810538638460016699767481659586049766290935362767745689261583004314495746192792583269411379719468092412859520704692485136952359834093535001488594929015787695540054276132141066043361275366164730657283670604211587512996162204324235169184894658870909826223573019958630719606170320696361227149366038550183664080450949868255541459641025487201684763917599878459230581450400336313465587994803474094838346491368581375272661527262227581501659163064989064646530602462435722642654811558701110099186928929047901827033189781426920389328331763135679525706374378195490899751669452707918164098594968379336330353864069284694906103511231312453473010824524648561050100564943140637999631734737381513389289684300387102994708063584967447913182988496309696772400743906017204415435340037916885029874840667031154635669065283832032225587889315373587528494673301446702241624672894874950460396755018343721420059108833848749735278642189839404545237620986542684908880384507609050740777979614661582318825279072953946871828971592114638542420229823344717712027249263938809489983090707486487536214968322252360796256423895728365655840593056142974791444263105219645579513085243852285082980365205023943184755016610996383678079542880266068390569785489340482097863227696799413438292587558407208012649765921220177464432801656538725911254015346497865430819048001714806579198183045311218736484440863404699728468091557737169142729911948474874715445238713716413854366076055677860784271369717545785868455917631951632797568820272298381416813700054487329945525617058816873868304574940619694594655539310512964910105509592287461635820653682169641404321025239824764024258637901895438299177394230138272621192625786072571025308111371848578715514374135350615526067010394069776559848894748252331880273194086214414595054003491798818050913988019132774455205894136999946117975549176245169988354759054964484150354591281094151851818231171766950691041376167144446525336610673947632931105110846750127724031852035746496731764433907419461140919641376602110390608075479735648458140872729550223082509682151802013462949042011636865592679482761457019135180408720565463339790527866091649490910731107350774646967302459734535821563999976184738488912953495611847596321031961559967459063746073826836622692577057148911785063122507335979457367402859255871403610554854162544316372912947145375914985412265836301927193482883208986108980343947164891984532018111635136674849200642073533436886824715389673960131752246212714340693586871279988973765980853806951779920590854248368349766626517116815848791039784183616418931747560046996391406518751186801739667492823723845085874605787604074962909932699824279819771653145091525436694143042688691404623578754292076221235505513464216996373269183039278814809587261590069488159941064805753738206121927924018405123597209692203195994924773866594723669573135526554798018588490166280995444036907673780206135908194646505177634006255040685580874700015119056302115042848388621550793213711971253462237785633823533787546721879600186309689746752362937453393529812213836237415291407495537683807659159375260519388471663786871150697279938736619203404863094116677180492291938819781208345400743785186936616343702580375876418440935460389570296283607664648916277093901048193291640498709027387276537916193740439064744605107209564183810654752804232445837893969081632842437977764730649528298035999767466694379555224298656259922521435045577160864132003076035359240153347835900429635071648680504212866358814474464964384202783481509909510013124910099810095297447063528166008248401706936380982660652798695651574965063870327479813985356432996630365201779951936447515918371436129112380662975019027071265154858159520473598973712016593567207884050756595871918422811789642646600588836312453999085750973518382687987111869638638661295255196372118954191886302834534875595774723728526631642063921779582590540547590380381989799512767683872617699436315313205010121287242200074794565678768930190546007626858243562444836738642931830115798567529591831058869170390696134513613387761846346787958024330895663391412650597850412481940044800966553445890904538568819443270931042680631484561101216668755762126850554519704408175533228356463676176496862142972677005919551754300110138115630293909048606615326435502718432968047143250897687180610972358459664785139004901811122302800615267124166214891786617249130442583305675460681301177795559899789508286248704324135550390027046558733666859509965174957993178463299905827234973377559084196667047574867372528760187146821131492553401813422957444005629184745781249211301712385933143942823581976879689493501657873293726299301202078858816055148744238320140437345684031663040888585857927308316509295424916560539389069732261783012347173805780550394113622468160110336702013101026395210315716804927777705269510840596735891779002228352215655375645846371424556177749584763743016113652298031937164744728324097699355424857356536067750479380027747736918043132621290768987854516062758522479010407486988034704440535002110448380062318965999223474421417978012421548835310955091998185196729815157249973548400099103815467060708613059764265194412037848605363712723870389791645388899894230603304936419870861367012391892810054626806542144221763889285680962417612902227153870401964545619592589097466750517154619572086510753959286074608188485815471147807063077916803501886448023805861586063124172826997411337029312277324784273443190740691970125660986808205790025744354455102413051373139878608530302412472295309658131220537304838229273227885901171286567183396354364390010599201433420128552205192066096946650092155007420736346206457360066432131291121087452716976169090332348701262950953018180702590131648416621221892949218351472517412712886275601928780327660354327257505673753413496514719715561751758589025010928492790502942792937069211780742011933236789249284340903763922105149895338089772310982751402278939392848465141452289421713949056471115541861447917402262308466525971497559079731365919499843790620759078476519896464300450279946915616278061159582145270647046315884789571941041014134866279819724788129954187905533740042360907952747124156896076178606835789436851472308109901396429411313707872414784491923421192036495278614437163467473391127153966767103087272093482177066794466498830513537748194643277205492215373917728538349335062107111061219913510445086028301506245856900233463434914046041570015055358278458256156425803003647040898211345240946771158982280131420033824174317852023495709118458353311759572506796041672131683500696707188663359839918789555104105218273779963140963467070796618231039753055899980305810717007092018619733409717549101025765219018883371581853654317331503131901291579276324826181163661268303928339138493131569294722017044163801169622077487471724103865820777901919984847384858204788803151821522330722929173045650418437858858531452761685704925385042976915115618304649050009371416297959307114002168717315281414976481752365183326541139283633248043867281011033985825193018153076524866048967613855131349873286063603538296422302118025237956494994705658303127734907266546531558766279756699002485960336443961306800319917775167089044870671031622575603256177693009514989648975899241359143706493602383628045211477402996711463733279151216292547072324639588076150714586684860940365351636426661944512187682062824710120222845351654517090875473683138687811300275976809382856869087901694903202934903026340913502351118121602204957680230767090467450942947916465417607307433910910632327302939844359746849167323944417256695930137327911780023706860261910083774060199182273097742386198930203323275293337719687674675779747678711856037327851383923791062969641404300918586693385155709474180139323445697103646505051418552765666799322157992698064803524320629697327718587397466672794795700505562358016467537165295390901460884419971710040091687817424104470328016054291489619958554575987261581976268495719938373182860563989150866206481539728619851771187205158119154320481847974430969878957652570889060031261713529259990490284386629858159037928757413867574517693929480923670003396845917560348609935870929847549300987439913301785096720875889552768854913361217497185573611451037227856302146884156355861684559597778217912813984459019805355915183906508028444803852288414155957992828317954429844432944538115617113799391984080860657326488507556291183420214947532809348700090553969342956741064116029033543903526032063217010967951301705224644625971998181233714885724871611975382074235199916734270287415200367879449048844467209403396513094188735473084974670293146948682454418439830252166216989772127249926995208907296158832163455575626840244693854679198481530729623108049035541424870067948457175306361010432601324858516956345362467379990317539947338621755035937756992863596347644238900591428651913403323710977128566040899344952980486763402888009829932894016878776822274521970415080039569232136901788081290709320449063670723154922558260250892427785934357290567977221293125145213997224542525867604044531238374785381181549248107308026263727164058682498690616110498739703862148101043908638553769427728778029809289672761109203939720502968900819081013980414318099058079170339501191064121887100270582702141615911582467012073472660881586442652443737781172206880438378871107114091650724793830448020317437750501396742753903268936876695048355691602540599854204258378919197867639331701315127512996383865612821696572929779520846797895395120322336475580418261353605212637889862304827361823370715319926246854000083541324108264020600606338807454642424386627259048463287991013806348660730893605532463747722510864333651866822689887818039508548457466384005399886384753824284967727138698326568757746178408117770873537955389509398385160278471795341184273415932815896667330792181796154602720480624172374290274619589233369770864657391896750435658651474159627473098651276403580202017106415315643570382106166153896228280129921411857570340893641819647067394009240810809523424004190077601808893279178157615022009872701227624797887271479081675255319194691324599004495739648373996109874199603086315512148055161703281810059808566533444021542680814371980816778410477905238522128240217865717246283424685851158820068116090281620079287270701757692595924512248385344265274497548118382902150434205725522993838897122021989740852101727911341447427266987273758165496416635926835574835990533125820597032359550502589300001554682756655526894753346959867099903262396588302965439378963959407828681648496072606860898362757792863265002299033216221832812000483602109452403028579936746184091955344035420810497792013157900526668587069132215969093293684875015901706177093615284928533296752627557583525673854085501763906353959173704974457831286645838085689864424151599377628664881364041458583388346080648274309239280890119323076338421535914729010823549483639582993911016985226463966320048071936699738524556931951405388361983222353597685815027265252195233271336775506354627363628930572803913308165954413066505178710385157568201958085950993439861086201100646327626243340559955370108905479581957530819069230220087509122164868809459249358035666469363896803939088488030433034420608418726307254593768740375726075741978139964513098307688840723253636637429852859884313745093042076127532458443926020835648162154157132880155608851987532531560306808208827985289259096556120736146824423946298248569684539417599636597145186301085558501919723148163429055806849666429556811547900811161235224231933434262500049680079244451730242226083705354078572535011646174318116855963980619378598839084241769718649284257600989326142399763543118643230297240690549150995016714247266424210093064316405773847347511879870581865466399711989714670320828201719745374977912689029504281070407874225249015613571880811023397175049887121196035959949149082719628940453111735332514236118124881641633226382715906531755088806912822174851730842390297240538167276462268040382358156716500091694306738178755437457965224497053227589020460679960527178111825123185240323968897420653530110200745835648509923219254655112152613441210179112666525849202568779237033515213559201992283969313657052619521111561624602563362810123193228123070272015976127939212917041216340007119530667499945325455902066430224068747845667348346908319708221580931481698102195792019969364732671538247875671638774106780097885436627053961214102915366995806035961106520581181975135618001380475488267548383473486017562468413412811495111706130886864719805652172985986567666162755175643077886849727858998990747828520948263350492836211367812850159294584788273677536162052217178164162518327161117971191516011376461316519729627666503633084049113742209078130022454159060810268389637431823613117146004564235015770383490912493445146394950479946166920123808117878171298676713552444064059204353075242003818553213640447518740596178918492552587520356228811024327771684981051339193753065682871839391732658880291414385681324199639192132287016207024176593951837368719763511472051035377656415494565027838716076577169151918435230105331953754066174650090668413212474282210498044330016576646306069820429275180030289838669808911321670455287432747381132621415171821971228562875071287548949358423988676423251597662955083162345813403170659752813853869015357307614287572698084178339835314813168202447426692052859998081245571164300824142647778829558200771115701007009059316623127900845781987141114399196969245146266120106467828503939478370341422930671017697530744579869727453040715907779947728800789152111256661881009651767683232502368375287529844065828834610202336730099887138898231179408465636128974232192265661064951605334217127421444771746125688238559449941631678250588559854207463439098950554453640619554276836735656141438370374267244065949138862375749008134874828384938078307863146138756085453006490800353720096370451908616153998482442765353590990528528741687235421502564935794645524665690843288170483863200569968488186442793427339556221515894240978247056287209935500337531028478186593982558981089847746687158479560124255893714281622627200546301277681824929240238357140619280506725221518365103046676524514409237401229784845251719179708019663274152002345073521736205290362275444241342783356838336545513979647330288823304696480803205415783597122416981215860758069694965944678459288228062630484130034932750703407551683533800138480920456207596588712352235569092797185009070844711650484841166831289258170531265083876307384515319153622427551295382452445312509535271871170364893006889736192945160382292712859314234050135926799179728592176013558382528807671171147597840064156876623835606855828485809248647727502264316866453112837044595564720319227859471993843629043885130284057687833816995611672495796408835922636341389273791607560002431787767279263220434423796646049175295556120028938583712065428124900154633714884972764548455310164953115471495193950420277142350109925179726299922685563952578314643898039965374849101718100456436376558725222288352955563485513574550065366711942918625345143618365137003482077872430610354094680735649997885088194072003627980744125478536741200701738444184597110020167768316343320587528315478470011346816838275114777019211567154654607537764103698550921746235765437643604635386218580830538615795183238766513472188686714614909503717060082628026764481350314974768394071108815019396273067383762086580033804430486373427359819226703597450126724775855318438289354934621089362987201251041970646464957270594837800570850003827089702795590781461812619649439513068351450045097270510861836184852957514713044613262116377111737996079296063678005970747100168517851920124356744015485470231231132186970011461465331939847960506289302305089497888360257245258035907347328183179859557246941232255580442770799631150789658424790910152946389539498007236062676120082804532389634375216815877311041260490167311457500545465352485583662432007217997373433981176815397529100084035195823901289302095505588978888689735510118865668727012850518915575620126703113950127006528851296999493623339085615147634603299790683386606401641865259905068478138564923256062011401829906228894270254595936126262565059143983342134754136517448970112833066752253284137570285497535918658051909502703048062180996502861859288708063354687217909118129722773830577308248255831463762157835039672284845787180915425756613395800400151850137512452171118301671282862033101302935709328642733631605106996805879339887664724383518805954854532738174419386575724335217563249116500772995625880214136779948366669818596881672203768258158507798809309397584761097661631446643564674833368798361850486542883743006262918594080954516240022361560533802529277392617464544254617472154450073016834661730986323268054054994132144768988866733049601642933291702357153262747192113464550702989222821241821259399658036983879720090410469341524557202235110086803733987148494344206647979559005246852597012677276676523894981807871280636665184516974112109103025333111150243291598186511569524196805615518875781559393076104564194938779218927317229762266134909771725346514686300038983665655367572879691291676116015947440330228189812689435951753471115209324465336115823741959134210094895489958034087211950798220504266927985917574507967061949668592951692327420490773291595376675889192678358008921066624169541742081114478614971928141146934237235529415419156143425505115917791641195930788462917902567118594318817602838788433966650346385671198458715951005577919288115353228758058708101870232382296078306134342343799193967230515154010911301198150829569178190765979216256327021382590884540477287621759852078536819943541163053154358981873100152875507367315893569192259071562467134623440186274480419666848955024985399970725865118488361166464791740353446810714534567874180096986422761281815637731852424840889601691340634608289356537840988420737601151485926157491572588025419966324174247275252594786703257563991095066692127059471457573243482116074308190890732632861545255595819031608167580583487466930455982328038516993025791500553009408650758413577818387996159464928963891150707805157998035352247385697372100525867581714245343976571639344516473186471312252639734773446986803640068702153721514065447890357880745840144522126753130572874750346312614917877728533743865250168786577667077220100859928020809802203671685038933516232606936683284228593254787190524548143472244439499759869283853177516634639378402686907256620979767419945945928413801856074219740911006481178737020822819862554488441130130930661247961489496188440215406169262347953073269064433828191635905464195409468582239043749178046099651696112847793105754431563018310502002110593265474989002749765472601256163495731270890379403833787726627286628902181992269961951798153853392449036820591738144203366304059414387416526115251587103897688223471118135804153253867926199489128818808651744761236641866895588960370571006990677128465378594276317601669580686403862185002017251495191374968484959542273817037864186127309645779903297164468989356789581532900477689430695019323915164945546681640416066522871168361706381704783327493576415809376141622133180569110273907742260415272577393357575670234335970119245729436982337462186809131523531904143992134294166966246206432588334619516214075194774819271004479585212089038534192229239541733427855803575198306914813997931833720634695400465314963169835181566839171483902322609209211785527814988626831511987758964686561978356846119161518851471412398882592422780969937628025420703779566770227381691987928993853162057385264844902200910473287369092521096733023640060090023934799468687684995502933053578102262539245815608125724838076342005438622997704158943355211580837931388837837473099724116987216504436930569830493783839022906120288716098634566508226066625846175336238890605640256188349740456236622174370744519618800467859651628414477907476823345445884754310069498824208617359210464936445383629888508577825110115237056875449602807453380694038391725741037165757922191767562014152194419317157592637955503796585685841477867519537475192307371423629412138382259114880568729664293558839910077711905072106107330999054756764763266117620490465807926303406207647621523228262275691293850672170712785808099554687506487116506005202812115383084016405044686003704661437840524234764008530994638337386084922636736520932335207548502474379327903898850130254293159067939210258656272200620042274383411185472352606145260707529506479951490850931260503242763093558195424889975842565432699366190689617407855352641072953614514798357613090078006542893328841186159100053616083610080734375175547566970734583639438069183285404022932989413059279129141650510476584051578845994369470612049738577968495900955770628347002097185073417427465263255429967784913145444646172128261826300096538852866816413187738297686422408435292366843399166621097470708651168275242868218817674758421508755134080614096630037003563959473634104235610635223157875412478947690334113064401809121054586596726423577025125750467562567103404675897006366347031046511377007986269666422302753558328030040011180767316418219503379786853202987588793833658051971323077336460679305694784404701359815860635159609736869497238948310779847104283880575669778170318550672460506099825202807859083233595861147329741282738428147173210630492327863286820757446997447136137747200009226425773437191021403343500034788925824334123321069959438691355126625992496284027604598798716675404223499408113759306493388821011703656048304427039617772484139882398953904537009720213577074123553740448687642870030767140309236297400380858357872199449832902915589347721494799690252202428372947688728951658482062045945725675777932533958475554657823527105795993982010693806783675386800269552289851707614133482380459267283652062527126212168710256056798281558122647920501245413109187540898621915916348253955180614651163783234097589720578644501355642290506217806192890797158899273953621911598563270043735216878465659076155231412001570785373935187371807011201731767311167297311745896133352568187230234560286119273223097456057661728617233250464131549095991252065178831256659501153907559641618983201395719328251013786565829458748769671270622266211532143690709276086111265401772218431295901961655562506775997443593208400888930248085830297497029363153191408377317534739364594202029965167888136515397452280013836574612139193233029897920125892018891058717182871978656575241870193972078325972121994785690354137935477301435665914513463297958031957503617736873622553995105758561434487339476009263585838773596037503855999504667363185973291372933364031632985453388666370042432959213419668799197560074069466533966572877227816871850167684294136007867199272296857372031599025063465887523387603825989893962545623244834967929697599985549526120388675073357702564362364895374038008996977102398802814818352058829869708935269142786140661876345137213245619247242007948294273970208654375959199697597264321157015890822363791862737292794190605090356168647160334689730952984873481671176946322126970372759762835716619679013184095034514916884514753451402170087151559564949969917741547131146675520487344552644551760456169298666285750133920631363730483601746032428055685948339907555006088725371616056823404150493461326047724316281300390098052302142472089011172387432603742851365613326167060277604695576475576447777040761056969431117646830531374324008870709108282062096961890322135888721202475798481111755169025854583514842372169761994813072748198950250539661493124920003533013799639159643504246157317944962450402726193718330709491555173914016161184119009418558824924465719325813396255932362193026232399918270808281302728420202593757610667247110812143778509103532911607954596525797545308712559506141700549416460451941297155048875816506111269990081351985424552088300513862903595037153326673285419892045284116116891990540831314212125681598037375051377540522387348896821715680492303595409386360531829124905480991347479381580997270078913873155979968573619052850581771241389364075815122215373650229863467773650842927973628410529745845741536042301699429614515782514093444374050172455678073663631234716446921726680477027778890581519438102922705750604330097813343372406001846787930924817130195933568891369882250001547378352716728029577553994637794850894484901817985605092312917096285044604487007926936280320379909049494671665102382034875164369738120104784975041970628720292573115193942481799274234859063984316882125609138531981852503300041213603394799954901487732709642880826939093421064822125115615144148440867087226907676441758396477370651347871224402950049016036736955909718692534059098248870607507945677577967449736880977612132202955959088388875878652968782951290417455986212760559193938290412857783488570113707240747030984417879063273041150231831170639099882463748510036887742038991045533845232509763957520916712643307939966123973569692461556421893842184391465598368942220521707525998949255544494632872969169255578951352605202892071144840443011879047241081409678629076190700686397437754509646974020077159855298156232836849129802688467028870383601505127983438713646239831869071371141956859878226866643630134612057199300887742644464653868694492228330450851105632957471999828379234115021799234921817764359866658538260236907342739047203316432344079117618271704232476461768389929945707264333838749849032010475670991653995162232240652111055282771239020578299760142332295412221306876386198259990310125003069346877785360167332587454112575562386954951640798659991453647407556445697494580432790352335306283686709007632949669125493360639820404098512946085068340472761833206182373876929417486767036263590140810667546980687280583623025394166689686729816319995679807775782131239005011951012169708350283379858780137726068641173345750349673602791687570126815161155477333752119931798833703545109050993227515753132994712230400282082764218673676961947088265131014349163657124039771177163881128647194402803283143081854455806884303454156314361333671961813118236445695600719976705723836449026624193994037428403921492218463551204984913479630529454039893324390367961773488595962196397394272219996988938263020446009569304563048555982421982178646295148154155172075436348540781988063014607027178579072632155839932005089345994753581314759922096158763895035581485099441110796539419884420558530904535520117112221034727795482373587065817271036299354640564056998096056944623145592646635319252777773318677414406105305857518828986882554983330724842244397022761488982499522792271041395093653488888404198796689776610224645600015005718045360776481842150367611356915876103781258106977669087607653389702033099391008677916034015721158002929628796959526482208641513496377802231993683989889127564638408456377024574791321036305517446951093120298207942570611479960843630900326459727868346247114346041009768730296434535846140992012704545671645165958454327562251926866544238623359991311522498196705737337935167364225920521776334682490167286444339752159598318570995549779808163836493926462082538993018308904589736445213002821364704024008705260670099914881514161994521861463031884701237568134557054741575722311795268635964573959312566386433291765299387559400134341390389117907454114474024979442237207534864555131298352476985772254091461877711003985137480096941208623673852050712720849575965855755990695253829674262191588681630141581931958598241446227834598075129913002339872845535974179558739797039686412662922371460865950013705096036362841020813721442531155446284780326734233171072601317883924498791495738624611219627216034933679187279417781603141417049003365119523152100519679307491067147337863656644694217485314306599947470926943012150235311365330025521507438703090084627990585190449767769476515075111495419211276894574587470914321693143914091118392822658298283663294815339958601853950440961560876270603276461830595230255312181363175461937435005332290961867824788099071138844221069252290719190080988315869402466008480264432089564145359616964463882709931137860110576889425504810997913868581177776846267212807904103612610927875368917083468735610710318682856141769724276948653431864089460424259562357927487895135550216443053939971548964464156438288980888231143867381593411134953827297412346443178895359056304097118233829082230228636108731478377706319761880298296951405757948911346696511630122439881807493845410545848698150764119534390027588051622380333595737190332547210160866935892978150240492933506251266395194802833634976603985627896252710472560050187565482178500753018846619057607701486629868219386304413359904732460822063845053906454055397702354674524612156597831991198643678533413210630227382879464396625018855238168463620506236489710192145366403408754097867175841798551590180865091780788053447354964558823165154056154622164954877023854604842907847349058173079270005701628716211082397200085216753776672933001768198830217001414616921909208427500525014733836411529695570589776582882310392832549532138528870723167157837835167572970371991353650786855779803536363165818108480108211225213693595270539989487081869598768432320537131271914264207905445608528468473721559494483456114314051049077197439132671823445498450291223221233260812745564425033831670987220366534516738606501953267352730499838186163158338875836882827870256164396365954885868377826689711576798570585436391698464396644364998840082607511995556488563202238394386131042476076197037313167688444048577982309095990869144880214752683962177255482603765798692214844922329550228902193015818304200738514897696758126765299329628007683659325879752884469716128783098156155672697260759949267416624250142637668469371343009674749615805994778270032328187459728813013216708083030637041752379138110085576373228691007610146541234202485942288023400113461449066233655656546515945428195409347259474086128805185380347105968172981913317650918234295967301721406540544556858891557416268312383520197782485238439333644810403164956964152131211216949831817020033753816280025752388028749140481032903929345469845784651208853217880396557765506526524276804292326010578401803228656538671415370298293549752728135932937234094584506341923076147753154425366851446642319075779465197447547957531765430072833224286871416542567756834071261646580854194864046004704077457573078325023511620661005698219135712739855072520647313069925303446782349391202893478493321468237898484376547461619448281404104038506825988765020944521897561272730019620007815560735380815224595767259544768695190592022915527480642349084813013757525888035998237351563716128970374329744258558154358367647304079805547606612474685598640190275050243406727843417617843304809243287611143635702169419930346158729220151533828884883096641023230237156910528013802599302059655593935098215363611334095379155612391805238645920280953729800238877996450494253216673735182982703331799791475925492731157169823193185757675707074060970563584423417477656874214440743482212637008475791174947606058572541461386184189418986292025981597406776214950611678312529762432989586785998713710255589555159037645043363428326632053124037749594432799583889206488269240535525862292614601476273654813085997201583398196573996360956694271482986113163434145984045857242897502385963940002185239232276886463740906506243521655068806820477076477016367563247878747806579113078412765502103049346314503918794245145720975096706961603986630061016952599472754728516192018655518687223993017154096510038686565182968548216293060461259319820140666796113817104834126467831898241901733575330145920785715073763891210938102773170239449667577212220874933102801202039894154151692268804888336634166721406508652373707978759758407791275316717525979051973054124142895781152522029545981506009686778933291914036267758458816199790692853597761523065611830268375157783821297731976976702031120233038705441821722833747704991316342110769461143743857645126055594356129298760057867621341460636609985555778519973710748691022838902585664050822754769949167309501115892418660575560920207587348769290665247734775354897076139119716145815270887120640417708552594537346039698499457719778140596931083727780224897690072164830840444402463632411975346091755277381722508355745516144305488366959890801026428016127295750076214060995658060692240491418128967179000388149770479810738627257645260726439297955758359988481073325532310718256824498170998881110636558816991303615479360020373673094456599084848934092970558542729104363254512184800296252507921896763430943265278331291600802346674004994639468644314464862192819054793355661714492611776110819923753375341104684627428037782532227134956413256979995563385245311697935439284555026165952290544060049779350160698261583539101338095031803282261751031571650317410663416042740429010752649856174507653792512123242820171397354466418206722597454785252171068888415164399176655549250902468198941621167378756999802542761148763952537752313164178548184129427955049517959283256317002378341498158951763856847482028952865586912170397148120356558988291903998418801698856668109711545080914894585207452077428870142459415629211880594099973106242363885178702222993765423933359614750924278597237305157468312410301922920349048813818125708401303478595445540543567743187057210855091439662045619706667073095719099964833164227675513932285047228120374554797308389974172841531400583055027003867198736833975212106157623701787761679631577044942392326937319224178709992340999102075329655320241078371863378145955793097877198233270197239154381056030236173231913613885913283623140232038548333070353847910445032518502020068128893215344916259688812027016851643273953756552027927719618877375193030885540477147502724691821797276723988512294899970220292778841877605074991000185380311396435809248893146554275248859319923167548436566750860155914087340132907826122202659369633123274778625710493607763116039994993361681173351166921552373701431512328137009404415552819723767089864464858204662490896995759074480367758297319304543302315896622018795660432397930778539544578471973219472957958381817834067570026914395157739784656735566675323192353489965730515359664841159480228080549544616485377201973741511711483089297280296120511445639624403353662314171048379347240529971544610529688890426158239135390497954707915658858188803688487808294505907269346243350469562270475200414183206601617870073745341222987750332928423509712771848066439720518755356653768912335270467376271658655392846580516813695766394310598766430565162854295089290377403971640189436015930006386835031937650112277203806044494869037749342400939155933251207457551254070760940477822550976024810816795333617881868668517195798074305646116933795798598042828621429050516778323433459295404178835691837000705391952632888959751108940436471420711229892854578870848991352916271996046380179114258246597984439400043831819029089999296362122568846298810348254644391133797763713406832668491294265695803012252325731784595176068288736341959587329322383562591275860045163433710198705750876006216025052611973757231592029621947171197521576795595181355623290329864824406048877982279415999149224179526770399874909778128563595802656669028525766280436611848154613602235405166558865278233281953028349905273455635043965031980491082127609887524783812045141949029320946535999005819169780215151606416057518998852492827414204770968939656959954241453114550056967644299045321987963959916328185092882206406598851622216366527800225427659094129301725295058327048501238102058165535381741328844131394546961555169669596935375891856618854155488589688589542041729589662216957864639837459810136019850577914987082557555255164459333907632209098363315229274213489065923560222275335324454432806876605695147904692329604232604584763876505950297422021921430950160979310138841113331584898395029926018220047059698892840780356269859841505581483799684300368244448197153656294724581358411443536908080985656482177648489882543494464485542610786592307409447308029058564298277715074901103034949290985512480737095855196417494612839586942270286887385882284166901224168139871288957536151614649466093354549422902302030875571786223639067601396477672777125364915529876006950457879097283170364626664637490065859312278261219072120439093982775596002962850312373119738828420579119925898725793471039132472087107822305902039845379150748991867568750557639066773424596731302485172101179922348219675120369167485978151129653128119775172586292082922597122534802847359889862224827441697473788615253725311402029762284262501875191679152249707115645340056798946514425013605630406480738044040684711298195447445727750797810145808877731915045130072659040370331139618313985536319942766767188201432886061531374916991853372518536094862815910585644711147798131183686547646153139173312966944524917474242337494901991996183914535895848116240375709962794462598487611009732428928278750101513755935826767105608895500503425197458677465290412217613912668482761120707885970581434964319504342711125056131771922980393764107708081437320180441558241238934412221288502371246798681040973937462618449666544378081470787739449324262539014684915478185247227635651374141547491462782357052351849018584066717144215701727834899528779542883879057650959457620272643673896931330586657396727404878615147468937152946735251838054580321937005404606791817619781317108471586465397478144604810360907105820317243458548776691618151062395599729216359581012971001289548709045292353483711436373441327618344540785259328247423617126684724463879721209074115662315743378286353119670506768280891893484016285771332320829763984431713487279317728204002963661300647931421331420018622486029385380170719165708290324774757024608341494702475204961405485091101219677546556995089039435510304331119589161101353640578763094679891332404341416420336947187849928406014544710084469904000955599767550810614369857130298948842548596104461402867815322968627931154944545120426333239924209935956297029734611949704861591966389961794960169747237031069420393148248997434991817732761084796946940883465584124900603023577703839958265485308886679076061937658360791587382740170077709451203983929123546424580829486548928955166689517859861641510956849130963778169316828959327062279317809755235030483074413103528347427648569466836396772784410409972045463993493002065995894229661212324635481647135306865986945109716209995903445226050292254121068737334970497290940833078234200021446715335444657508037848133738007050033959653496477578303972072203976910681560272525006453838007955684479261411219951744788818363016915035217265475416867728259115913169219301870151367119475717584626986018930831484719861679721848192727094836010011833572618549306877652303739124301971971950485291167736120143207092952808156258500503999369600733697624600781135636535141455620620208250806353013758954998266384312816850356206610022898273819220048675393697570228422641755857569655027324167311832950567450795485339470261841966441973919510425832512626116959096018826270232541472377252176571208635672790038230567286762746810923557008369128302172495410962867948076896521037125852224270425970456365488315468907631451088114727785552451522022241326979703477179032453931676630983432406855497488994889700530196900337117952864532091059473702986837985528544532545059247722864592497780648181404021555430369328701114651701807494847165415831236457235565689243771244326242830642275061910093924767086585389801939275960401274692800233891196253236693327779022628770909544771442201558382521353843771996296355699051834146232093045224845066940532879165786653833249474920576606986856924963361349267348106642234996357495531872537919220484340803864030479497671577728825491477376606185685592871308714371515743606335229064388877860995476795911735129200041306129768774177275145266951748892589591752797014075597199105634738019774250061403059423191100124899974132568588072027140340114591085134690711663723973310520143776788717670185122172194485022512819298537263787337364796290185688288876613205257568347250233339559259130892714381322084469126845095068792548040622356164556780597205506317508630693163689297752289562943848426577338345772252636259533442783693276356980311015754027617935683698928101437586165606531341890144501116860651434955431564472766508145223205870834475932191168027361167100020177536359584215989017738827685373494886965699293423155150788900810481413501672627180023575769622304702215207819646344425703665356407369567208834358653401230824682732451444786896980301615153387225010393285049661333630508776147653022032534717838536574881332343821757378335462029993653436757609352142087774401836472375880409425592121354419192907000037086076125830358997666123980848472424338218300679168766732660735855829649025907869246686101710650474602260342319081014549378735101200711755865845463371470508940512299815423130132850461181363084843124518122939826276656168881402760477513897431128394006244427779693788241458314441297903273570277596189481468801980221485254810032085607366310836429539950515377057801961642327034233110925180361135387495366765297544541278556918700760963576051542205500720674829649816000890853864601071516550712598813605231161297211451220471160844771506727320785318420822376275786843806175507524397125051171890464886743293591848258447445668395935400880398981720154651214896874587419589967118136927993065910943835042171475193754025306635613755657277864375144476699754500103055424377357996119157966001066407241164311099457278386254408228679048027757668206335965486476860950127929438407617022912204743857441370965430904901398988085633433307800888412156253950426240824415026271745746639557307242231981943138831273619896221891884113354402230395292077543757353468742215054961928816467020987707435518749518280037856661168957426438919952517608755250122222297769663212039715118369937375168759493281776621086773340074850709294503832863514468138951463007588098365259669847456465155138960758189828923677856563158592228311832080791392472428183703732103726816676373021751221008825457195983665765641540054140574115098386567254179716606089501406395414607990862166874371817920636937518485720903558579007598358693216387030784728433066911518120124220890501751511527204639151650310185686262471266456017703324576303716837213420149405765907496415380587143749216373639654906391655786170023616155514755448387824739357878983471860264939371205601007436998829875356133634249769894899228348133141457287991760844330274827654173184443255359375068089839573694803076443517633805347730956907914261356478926671447994010286706099500931207929335476633236024799052137032884429516035210497348271829936701557288545176003612767870512534548412420496894360295216463583128027439462603738531796773333002811093186273352426743247561201399515262546633348960558901536035856492375543826743545519872262702297668372898340712313970006669854744690084751032328323682398330589887747528700925491529028123386206818707712372789429514153883833799093977683647745815718315781685544731722068788958798662882529669575738427037894847258100482050274156020697143426969582533069322272316175496263014821595153509036391249012907782589935647909655188732800363155285751866705832681648210107331990049084920065902194141282745320512233032763541794140818141240658742963480744516341119075146295116016540383053097126843400417782127806858096981193485186561229664962510722143810362693320298884042212969367198353221704027023685552613056488693324921138909754976967126081999936864270954059340149402518183170965780427973226764759644776377313999007471378836975350818565187158836378362485229853977344879980254981312364268783302545234286491820572345502884620212867613715826816498424600911388193344860731944171534224103065219524745622903700676911638719920482892265810549473953328167785071046652019129898240437874497642993627656702557083036450190559107533153647126086404911149559761681519849114273939071719785859056667557117697427515688651258274366919290785043137582301167643276525966214797371057374417549457089658012811835757085887678303960353770108522897541890642663478577223092778147334705115161691376783072752445333756024802994855672760430162419689543828977757761599801661557169138116685976194873407386718903348337794541724232931834997985666987533066805413275884219727475016146356728592189385166454602903712086752464143894146886746875213304150897411594970778852415599376304850619540068842174964874746458952754034376529011859117674250585248636386471793356641820567247374534329103291083004164375701624457275356719226614916637859923841182967173708599055333124999208751137041405100224159306118412946075689220752796530913438506207446543486167505182625301455229672768346506158544132210898946551918310481623760324421315213454529979438614230649527042694380941968511897739289360768315495011459645059804590972614298244531576044496699219799877711856629901689462078367539875801597052623248202979756007024714552928130990107760904716687521074739449761699337523599649072320438818739514832922788868308074161683577394794298101906316942945789832544646084805731644695290599353781603403743578373475473540172987551088526510058937248010833538622675293587841716508954312189706902431862906618658237272489875350396476223700621027900171378523331960280596338142052060425537889318940748583069979535063020407903157751932992482093507405672719908860486714969590736377575074636161659616373613180211202943302539657268406283805337249476777566465626314637333524233535519076211295638318846428060250204082978053677477100448837153743655836107890824078747581603290682510369803809902491804324144884749783761758430928844330043987222264505322954870711792204800413490049136179064136817241098080093403341819064528203804612282011918330311258890101775437601846416451841189556137704313070886428540722054250803635031790135978000339976769056368779829692465576111018258133433561185927057534676499123095330672357364277906376989679516359741808048980773784816086376443383628094909365064134657427193848550544735527622265572347869808655552012429849197471237759504893237636478355225460296422736938793807610958376181737499524207271365140353898198444688927755667737249555255780050154613510837851499718542782293626725236216880473085025928256479657370414871046051912167713891108780114276069706072784242943795253854742789641679009593021748663218453832808606051702941116279422230046213418804685198378787796832424477755143383774922021969049678873780517903795423730217948823590888153079435131529587745564278177119558507130861602769832404762789038749039563493264329900078947350971098488685745921088138309073503875786307327992268202380711904392849736506643544970544468634285417926254225217731077271763609796284253182854924337775820312757130268870986435029509228136559413328634927599224540013376215534541674778461512705521903976939379100566674689003289308897411177819387837716024012123289292062172449834027890642996650051686281391088833265699468159442204740539942213131521241030878215858787475440155326781895401541301360809995332058353781760147714101014514585107610059395048260409404357676905177206995295042452067110744650978601996810980652039869572324056870544358650763127991209539278574719562947751308108444305263287747072786737157499752606329805217689342672617692386843038587744135986183657528312819105978209085857177326188270928682425566842445780898738791833875259425114347545262034086465995033025158704854156664475813060824969358280017058496480067852517542600804532459295828049747353864029201368051120095390269136743274795573070817833073208415125419907148625630530671911306883893459477721154350568713048131156327496546828821425114318759846502996179226702775579841932160409538361654038066885125987103681429946446384997030886891285762532465960030991722615606227995615741810712388016002427610353396372854321776475621568654911993634860867086567995061629672354519514701874155446097768753833622458369101289206068712303302158628329319468584290273798978795062198934447074612219524966817705678651118273424653342509690247725240186099442224497143894769473305710362870934745732855686886502443615775609268313547783831929960674699323152336406497030636901526121992061301319333049486376061458546899194929612947697146478503884592657251408134780735250749549233719948298777299470741447001148253250586352238156565667909854133148941295347527153072436387810792339210450384440534418127935598051851529164901311487109597089822806278521676216607092192288947967791212021287983793102876005592716725436141533750768139562820857794322077808438689745583071754745014713585474830718798515816932970375255252387646311679930934851354754567592192694202587109330686500834111868683027926961729246946825175453829997322436732457510603140304020979361265314882327079359882686319310270844268813919737889150579877574955631416594289023815420357296061412568116815959810429071462844654057394642001581277580803932884722734768229453182094096965532816019957080025611370189774791343452714408626826715616886075037658719199942122799319506049434857673120682499286279784582095199014475413221356160454641763440725976845208606204445185705355074746626697113708656442513551192568508114956603656260031341768074699832436292684763469209755513123114722864357359016811989040820331850371642688359765096950721732001015333413672171674420830659116554811426840800813656031076755209841822128140704076195866541752362137958920636715344199915990463553036428243996135466208795434707017871585263246487594686952164247177942058134302951663356087858054998457742889656307014399677654338077323928169301124873306998639151337817627625374259980940872964388916969477989815422508133013508574018389874216204200584712707796768515636763390990802529898867395471719064734325690023672166881980095066970997206678015300247668616242396406883382229279137358208766319889065793155823228086540624826154570144465686133514492034178483114687440513273839769537943954890824134208196480240104765817518711547320646207968660496418277930720483855220959940269700904933393053574682256212464694384403283267016718870998600946544743322269230977137021870459474961620711975325279545291927541503750952339398475658113229184781361945666057250842700152941035388719590409141332345730685522928552938500505900907487361533435675388970849596959325262492445013706074396967903147598876447186040726593293921328403704235512683481958024393821428743629785145010658346572425530969072149181591091016599910614900822978182445968212322122179382551371116936740037787319659040191058284437675494181783192660340726947006574717069469183693665918335435966347128656992665944008424559591005373284724893173169525807064127420349734327149752917766535500072902917686955293873615778487325591028289797511338176079390735081267494849224612950241796614375215761916666489510570377511833196149395069458921374659071195442530134744947978904410217020462658307846611913643919202098330372079849711939263618495079118218329155190880357956997877402547198450461299668700289681817787037007921829760291044191038862166434979143699614555156786063359335837245880168308423939021715942799612597332444280598781161160570439679488278130517673397197975643095316269417746578833832331746824128379215510346619033578037250602604542770185893938417843452740067968715387956789705422617838301948333240243915285902366219514695949873516065191940855860044872477817076527805904749754352303789512296552456180087707388860660804833315466914955653559828940723495734117636602389802852992515379951554649870651776790554456372342770157534979800165207473931125117121401318486365049435360184911275285612782289818292516413462196383383801605685551235366162738313618753664534915416345121131245459989015325815628344524904158493660824654396007885592226757270149263177681808355338759947509714448914153526733013202516240825589632076846295987271589805466479416108966795076021864807644956702452769021371425089324772182584526050463836203792656281938777989144922980736059939029029125562693563474368649147598059096651312113581833783281485816292077351645207017966471957058958200345317951627424251596078066624900197776550639519922628721402165045444367532787341782545621657692908242393833037028154911388793732695985625919283516436548775027761862374326903154101026363522630756462914493977552091064964635893221712236429739474458109393168300874375784348311779930356191023541489914913109489531575547739476018242532757766399342197923538347696447311489545100074516363967580661531005339077807821488463617976150813289701467138148613814736787324865024642333158362919794805452185978182603766761360005855296859721813665714960740444710176296767155790305270176647509641160670841702767483781632355185171436282674579845355432582749640298101020748182267484327083161158893052540447071258394668763558181676530843655983090020326289695205372007686971670424741772232899475913207235706393118077534904584989607704261750143360214856682447629502058587415244799492717078777996431474633893597677623034848303606343478029486165688567020587663048793142718627018516296950476616128402790481609204651481544792118516315377477160834316115865937551714118509880157930494353275696799922752599862455383295511563819278246444867904474850565687255349132480991614838905355048268065820430398557002313953411304268961646399905409973150728854791620531970249363911578391230211194285419337543568822280059096502190924399016157796454366665069118135678412019396772959412924943581824171196011565309991024817109445725851205849148239021895843593528101446714420555104885820262613602666500189461031526986888358026466625502564403004557703962959618764927919116848594204798199293660003141232488132991757133903330964969477959432928462884507836065340514729463901117500790377472015779594870827997355404194933844770594659164623643813253583818419382611616698145836440802492038898332092526916182634418282141784754857107336173278689639091230969680182384703303202762091053788482610322093673490202097367700657043834572785973255177184695098238912451710894210830830523167138169754167553163057567752285162581787711197299989154292297549565131342449818003565112876334624743655471559445784629205628082964703857708385953438665489793323439259540034804297094903806074697320070605483796017541650649326396830860502279068161820203794700870605126181993562578261454589264252453947864331313300885527931875792066650501219958395344674331437483191898901250813814528961952770456453055941077673710412276548197847730236619388918917901234078115167742366516857011470253374262023348502653289164104838346178738610056957270063145941018807882648564279514467446665912935078323490386889853652580826032561520278823164682326717936162268717365485607466398368158281352126596595006665987741106307546985740052775592404216572333586351226408271328040682055882893983542584596013783137972746747686335744592615420398168753198177168238746892437139124101229110145717831258504252337101894132980549770361323159597115759597259896484398978190096926330613478651478881299129734398974664224263900426249503912793834067933963438302339349086261127383051057277888890744876374180205942252428997265507373470051795293451517532583322881408071538734965055510107011691176438459963776045484289225705232293257937039894043726928243536446694309765611820441137274879699860474074047736662476189185167445933914562839435336132776344999060885038512303801280950275417622240049290568735448913947729359450053844665797715768732877085864184840551245048628284543404480040776668172393275475534605739706032243031250323681976906235882815712138503999189430803855573686820193134059629684034810042308721574650293699384187520400376875950541720974103324355971551828990640990024092658572692463077088924408124257471778391455623335350337771318245918415663840774943423668426590631051564227905525113919868811480974506027887459878492253349964510408838270016766567679865826575483636173918783647405702040826419814709171660259094082613084009745124901169691303349675964610815418088924625802856634601632917534773679544557458689866150746602589461805108531967115727989826502477649581800630912734526248622330919650662049683978565560222069277998073194634656392306880587349419950063744282904156008608846076591077799040365884813373001613871158053106915250799356768791310462371595478125994716718668067332058448063776835728579603593669486902648959913513250719038277288373795232365127582653641288663832520187753231521371003351182902715829880098193240311817089382382523813579169711010222152188450618033824893969968998234416046680539507156772712250890226863230517012422595071273959599792823111171103048926186967893988694437945373343181290670447121172907313930583272055464060112584444309046152964856602444632571615847147193744530672109169653437063518526713347711556612366703203059695364913148010691948229122451904268671039453265743796826410623680811224982083577801457529832777779965527545898395867316407471412097188005965637510937903175022275767119672250527537035657562839277332952341251906067938842144168420304555411258808986399304531608873761719173429979190404691696374547090279754200091476705279283757837171490666498924910656641476038264924367955136137341711922231520145662255254725755968943074193372542934750621719790244050138884416895943424054842164466220189401552265344982731262404974028069541350168539963187200856468563369866036762223070732984282985917657037077214293857330805247419119957491717195018965894394454901998259618183201428180368073633671596728086695218712300951950507207160261795961912215732567319469134517903654587348014381786443757168642985600958240187847120471933533325555816987705510113388597079310772058619846357782047953681297844721520621030258743813877622867395677494656166089050030820454119756885774385900212122641107534041899787804460080806826218953915857708270850031974963837309623447858784983379163072355359719888537429319776336638955632922774301663790398813286458402259567288860852965233579540357933904085889504738284836882059389928452909516599737919125244892472687248283566933114719841086423151272895056920702814578581068654086137054715094672326849592280864888652810529157553415583433974902664077671061988841264636713419850922919231012413053970911022234480422310952843661605407882728485348466882891665868093356575512077091958486811001173598555602949117660336502210834780695972827106900230239145404802515653001350783358196102260895957841214076983788065729612536246547003786421527644804928173152857017469157350564003454780225934204925475218018257602925814337646799459512220657747254857455112384453521015390736409423230191503312826199058103124608352694258616938139146321358884197360819985316327895961447187900251916142840194144349641276416905172980758382643982723224298736455049131842391545513874699622368757261763271597698580477108995052056712661079981785373322194214125968083823333152304889022737159727401567587864550385580488093055858381069647836506675012135049328463295783610718063097375129764979955497947723018515034488455992492182786387314977967888259500933821738458869854665004567624438598416872438020150938029385752205358003256572638188545615979023231355652037867895988927445103808141968979980935997708694392120268911740400828197342749108422309652741467910745677880435367627604824678688294021778197566913861262402452002938699710002876670826373133693878661441340237565880622726771337483044728231699951994461434711244655760600849762737175843754150275132403976901327480758969301164802162843461816390886413795311549068254085497649767897829673982529037892453544600427334952404481927392591381721630688958552732421870811517380556805842925953278712546112861313977430740460223340468429315873222250736346637188330382783740267138026824849446294566527355794651075252781510071272213944519176268235646378877655500247582096497014764820649142293303329959692922150720492956900384834504233096757265793774239123126915929166346070648118517785925119646771067585739512111738401609007579668461109009124204670848136269918531584951989377777108684439225242775968739020667066618765956163497708548303349855067750691769686476405017790876821499028425864061723515942724326951764748907479197096731699537232006432782355180772128979810769380184110614625615957526309310703539559486895881467557859894382035821814257907374213084620893763756093412316233409932993418052105116121259142142783221645572417064752459226325438835749640729406892101711232909179820010429315604879681957593287242545012517046565790551112466374930464791764496825228057702041252232513330083644621454502682430903425823712855356897763264302876460384206935596173545262697136915956026984358368483540522546858705838065113162438195000658745389882665824023273204651619396387444549260101379122466244345849535399826099735667385779134311225539021335692242345343169381199150888565636465533490564077707410573113881831915084068921748884346883232896946064268994263326091909460101540994972904924770440596781314955682516606006473353889798187908611041831315934507022610613321225479553213980211382952550044280351283350102094107996266210862907984420607518898187711713524249345325921814626129334943916308893710191756536601673344107194209314308698771370613408035704166860739324316261115907179163221825407113420053366616875838552169278066600369342333740491536308230687761063681441801380739122418848682404855466354811377195180238817026577504709924098114912314039209478419317317779420763002919880625809722503512549667951633393496450083036197983874553989287853356560312357346026095165316476644281839114198837605230814268175410971991184673853638873410693137140562534506497604762610038023741863589436210069431514287675346379693080947636695087240647074225050684910580508102415041922113290419662285373799728742243195333260991392708402922589223824949573772292100084051584670297095219054819922889272095657178086920987457241230235474283168895375732830143239502340589756218260792897212260672788085474751007838457522037342343567639206883553040628906308563186913155732223404855878997839945447579435946652910923864459509175395586532324545511066462008027488466266876691637363633149864737574275261017753240839186053018949595137583203670083857900239686830453355386434177762632258482095852165108889686356838745469330082814808157013004589727743811735182950481056861015167103036163830930067804489350385277409014740036837839040630651920343192974248074308836134518924841110422647389441872606865537838885708957986042976272288817873386413923769510917076205647015261448989984953520020106268358531384921100745257349487385234002710241247013200795425448250399955633357677115696909640223290423919355082526751887835648295744357070255417838912997611833231728401640491109477402910917289080093204953764629046437758517057866969084327649995743824137426246847662748936263334118622246855501720799704721553559515141873591709688298051254829007189014218513362845290507395695064934697729739602522683992428216354079185647760744191863533039120661211168814059377417955983964726486368763729773762679521177298826043252403329153423895455367995267604195322958376295406761226301197317075989956422244745899173508893933316406094031943296735143872359316085324139690806949110833602767477120514407037726708401808035474188369982495984346424211693576492609532099577491248193399729032716783518986071978076695862269546155770319743266551242464551109739793599173956989991965141930553939963170551054410691319345930391217883803370236998993160206492133816792892879452808549830204424462885187049149405805593462503814543589475358423238914317448760963862432369087745517456574174220835373049863379600164066176609545950655623616821249747180090504931167525450194238959785718297721327045953584804317828780976834230975212486403227361802546867165432616387537215184742849308473526308856186956901506909582870163048735161670621809683652594688258482684422586171169766368518430993082601794820031261827755809727057400121970066570947874210570489720242739357660898545623602635391952733142354308812482530072915133863537476438116824587451319301227627765502426925744597176892020355505762255756667445932858522015179564713684763283832902624543000715933903808419702211986975149422467563380526142441506734382479827196840105843031457066001323707754423557436329915248986978641998719222357867615322713091968268846923336734608773283854752433112028526955742607523548416200882278752398992516041606046241270803864844377308296842700167801814440458897260531937841889888379409726175809425788004318685208712378554085507806641279639898323915994168310921604557418768152390565674977384372683430362176927080744219473915775367156878933591484848057921920036675702884320843296129052071156190715572143635204455917580253534890651787563620326550233763934953205014252379502660073322970532946839007380272507049269280157347074176306969860735408526089412384965373224573608524829559758272106014136060358052042924022610389962926439540668213259423700727669222478716283264562127354825306452460439634228175172369564436089689577348824956579858474192659668935719614289481074265172744661881698748663458977777662941883102379042025358617831138698747848343199421923363684512985246787004410936252070793397289247829447305675594206186668148277809859887456598092085745655309510971877469882286701494081715444658784973414793525931054188656071388693515504391989054787176708408313958356964979002868971851051842876804646090694875297922477460346274498554546222851341502644496649514868707402066706170410431341638199705853945303955641746739230961083114382462768543034913104092874915076639165803630296190866270556360702884908103555436935051189884373236909131227437359823637023447678781200031577339738296205994906334204529128632247173291459408979655820359823344695532998071871660956949941602237117073991200957399338514747899476585607262512138689080814248698415964097773212078773660998543039237428107603049837438278470776164810704171022217589697264127267110298728927782166988052992879822000999703155401094102544190589157486149759855692851265634054530446461840274542628171320762059303815520306536072756448218576125317528790267893901045978651228576849412497470375028617320513865673018545926719849777556318191830482607545699407049531168138924343980147305683677207380469439581787137664033703660753455696126665630008026361712266723651826014954362486294059210257331346190786607979166501773004269028261581246359261997627522337112016103301370714751285501505051606400584053336400287637194737457572303348078002595989819269003337921270042764914834156221057141509946924774832643017803403779789103327359310523960743575136637384463408764615424686477310025924370212066623984236054829846510415154687711140454967013049701805980845747907010364914733532608469104834583149728223832868232595986857364003712876783404730045139356252045447330208635171238554199081936985714608137351090002214033510295815705781781707629576063026495077646560196016641237637858070732028061647990686997886450196715527083558635107920319508244478593098035509635764871599416125235718518224582119004032093240247534496887587089564544198723466651905448068255374899038873070587712784547350783437119165066205913165761680812145364389571006490255770289447310001039762539414728536832457295400305435801019970196352612427172957570012660371024913144050630222031250642619033267697056209257887039437160962999313198823738978127512841768879234331864598764136244172402270099781287445987246053164985474439964462302473629752655362215708495669250923845100836395386783546540132054699643349562324733290761453241006926561259179805613030506967882136245036532716083282918477176223894323115140042724026120811535503990875975862849996552112039739613559760491219264311002228609688918789727292708954423402155687874030093691983601822902523077267373525934069076893231529163577412138066479605035435628082343482188043743733691997690265146638847986796346247036749185113396859275024049017072809328136143885235273778528386939450354158569932399516180813319743047537580080163879836949437426289135880534891712019341305453488638079077952663835950020687531785664834623235017917315011393877236290317306355845393800107592590850359863899558214319754855964207564053398174480041497055875303343585825689587649673418192994616220714652346143569990558417409223989450888108842631153091265695943206985449262705021213454310536858940895244747507677349543859142358334930466640397489843822359280872728439119218395210944576884704916294412027311923727820985099841681697925505190579603765634454283281373586341315196860771262954162058118339113408408746897278249118580138574530964811968797276761514023956845893843361526344227780358948409648252385844918810492597301045238673366436959739926346794298925557563276326563109440231078369240811668851391558763174283652429180484941583099200067870280023760664397518447374236744740773202940325727561351790579471373112435223215079340358559354957002995743397753759136511708812037925691008784972912990959814357472480421611347307027284106857327878406670881906130556522490254558307464874980882228127270242713672944164162562700138283193161845056153866956866116474118974885226530165208609817109624964811626099513150643205884052791354437482941785514676483654542215764350664573245926475252117962134711664258283237560648925130173072077440939628691739200939877581152752798040056823816162390659568876883134952928311798707256970774987810852079379026454588966244307357756339837409988190854028844978368156808640262591120155278161861856719538251183704552065441307589137344500789587542242363382197620473747648586866918655802478480216174761211297249919485976403293961299554001373995173683725382648599791113387794773009587847714296972511229321605035439481881229621154422662648553183515245705736157559976798768740431193053620912016141493982992465713091472055274744714511384942056985301046515904289714024121252541999848780973252833026920267083699981911580258984336571297601922398873644365136064725626273099228023143848494297509852621217417711943008617374801721759150731261527307379525222448334331272314760358856291540083479886261390380103561183261348298998783349243807922884478930678227201855964110433689926989214208590498150256763318045397233810391376410243139199024714429671659178826993962112552027896913653177370723605385032022614249719906892392183023822559402374562564273297505987852383268333972144368163271947710514937180799782486652220410476466648319886425262021161383900616162759538275920255172152196883717621073622274558483712155859348034898367221375113410574754169807917425572543004025426569019725880432047913954137467610962735191793533863483366091768453555672607529700735200811258818496185242701570245515211388332390451699577638065297181393263060018528202335609233690772448473522756873786078406374133915376572310825167403399287608786681009679246406643259119805626813026193594950681956891802417662870401461790600299916904907806763573462259473736600618916077379314601400067852475881368153098541223215707716562074222295473687937887446561668528095598992848794192398590530513119352864213182676060637036251251305906747696611530689930525494813651181843671381452205342909388538237720999297318115447030479016656544057705878526790413079689013509067133139039209308726324061094120226788639482896305292122430402875873098504501317532060589039152116948114161056124911898506668465177068815796658571137854157955287752245773070379932972954008179689800322856659009799921790140993804148920846852879050349322091161140595407309553475687227339544904395590957705549241219455630409107899882421343169089904669195673923575927385650874096639058895234376949820557396065456543263541611696983430648156295358976844577164547832702515851718470599995649273623143681771419962351529667382548621525156233064302173878583090511700481644342840101720484030681048444348914980023978015348248991088786811899969193539245733252153604494249339765038685525494638542945510902621438247761050181474797740658155550232651224543716495045343547872638152886660900696279236659224217049536223879624410037321647990692175854455649301872167918075740556468936812923439703057912823950153813919012186374346662512369669811909605618118475594486685036835813466459491157132678370841130218370164373333671425335513401315195459770549739964473394048912006560219581927107001486305095256870745633612069047713305678386582662054613223288910175292767938526821463184542066233520760152335576610041314389337775332392720378335499459429648883019752745017272245325901706183651691848474168746539704154354562390602164053668148088903463274133448246664606597867175531791906403116874629512328660921438657869653141070060693446299750625246210239330449175680786930933006174991276447665285072196120237093207557737546171568835976943653921435213831633924925915111004817606625720775104391778464202181494867477376961833448591482126493754389593216454408640875164679822168053684922199717180183013366801994878630933469957659634297054443624254724966870681845485994443318064701480729093288659377166157690521566297872417291219462485682581691367269556878892425478066895365001051646802774474407184959403460899185158625529701784185035743117126385794530437567048172868518540948587076639309875016554762489469121975229819761220521058242316504425256408194270248830005886582473772811688151175607358092680846161367730508476441748016047977685689899278863623676894002831926981783181498997746137785277968529721247254474959448708484246848484973105652396270523634712051869477199402908411796528370349106967374575452187509310684338840101426463438931238465269276502284839055192372251550927539365268811186893544144603086381343358270195941667939160863550118564595697200042545539929667677431468830732976865340599198545564285026582985094923952249503731699263142879388855725923116990501926782311394504969383890054353329053523172966720498744992001848044644564174010220541833783169377489931158643292284915902984819775604731801356434158015702674521750311076013528147908507128201325259060092467187079303157997497234889460210366308194488658093956505764442544954254875084867931013360441769761953922224332836828098776179312329553463035230924844429736284049729610051749268481688051586391043997650295190585582110863083473208020356275981397843635909163438539452335312717252398566402273345916869173847091291034174169038522531787218846364706821310132503117803785754249473795757207667125264371731099965331243074727716123918049932231504637617141891759392988908721334410219200717936462880668721434888293278827608556833221009687992513587692894286256831349503945466843271203968407761865602085801510266539206002881924395327867835045847696818300463994199607426940060371246424575717745025636950203402486929896227617353402656435631850331215452319520859904084063399916413664702892543804238206538701993386214878713304131118790348335022996297007264920814668611712761693601976263703667317059804021681433528611739220283549367903391610965898573391972663845565299659169567082595767783555008098735771599159827468789028969849655113454813520242239658498320630048487276380395829897623449773544315032592354556094223856537247642411443244521664887428018189312540649273832173546273814189587721321709167874086459759205995407569457415963140487774978745561358721464303692892263136496041412346980072426897018799552481860227200385831526465209195233559869505721726040519178696718995244062160958379336821946509697506071740669638044067096633946504384737277744939948947173508869755782058079551433712323349448382602909298284642264935315033616350584256861183593970561030485921437002114492337773390102242825373911053695017239944929364639395851513988333533710791783337628386453655013143831722750939051681315813761527848532944589254033682950128295343520680638272786618192462042167775299036987954714458358722019031744707578493009252872440452966334992462927214596549559979513140578559151098453456815507355621363118705186780520245756615544460014350702600408538024038040127646336613411318447032127940106561595713474963749602699930457429154286260926340747833779641663393110356795111741188218113556518231773329736340746407620924582912442596775333686561891013754301818433538823841099741766228405169244785733537822475195627798074197016667359307111475245783993308155437695452116820214075476706225404712335719088913320938304462731035599711796299853464510751330429037041498220286455527530609726923544111805049418967279554957890665259573291670804701743656864016963729733511582508335968861411314677780226533251642331049284582127972392566481316838166419178703321205323316859487288901777707114917992429828872619385617102824281905198066099505773023884692085596020031987432142276614361123084324797147959776528209854929813828406380876294783808898495215883667269332009407245826006762615657492513420117201659927693921948513730634382273146615362983143839416855358921537561741536325888772079907524299203057865877228946583082223457949931711048215255907283867970715506024400144556325777791062170930339821744874385764809100626914260680720145601271391600997990403374340678461527893478023963475509955010826317432469860828312344454586936390662731158167334620847009329889909441441742548887171813492682011987205196186730104187060985312272874656614234921540145184047547948359740282890687958083025434918509404211813786154764417215426130662393934785990839109661031815608477969625262094502697657510485141295272064744350002500398759610990626862182780122729301764513328524709849355589842614136318208409225287325859202417948485259791405452231647686960380574215036290299986419560616731190921993067600171756858419611532891116704719068101096279203361149547940263913989707224545134778332137251979509843992495038338213078672906486147606114811402054040224150963073947205755501372646906645294668682470439679622471425746241834996047519662402747013023192317096012296054944406206678435951713510928480937329787331822525887058125242879882171447670882039082035738688440629690432789271747098452618551969223428296342213140931771292713942716277128622888300204310632318624639016277336225185405774676731557429403153635521932857655962979485028153933863769839549910694197599736072983871538512046277498022008401176108035811436593902686792181082484121198316410392280135222391666474562888534936837662371766670629482711445582504525615942938159828193539011546082818067681935502980209165524866790086253114497723949392564225600689475821798499092379450973765426623853727516296671758826159539740433143496883493699806570566622877205108514433475584766504217294363393159021270559877735242777998121999248336333604399097234098976326712249031828135932121478192401019486789322065093970731140016058375198792041488143171174143328288212724072825404123522019394369416711033227012838175223316306186702977757933417165820948043018190748419339752527236161171029544618283041776521100909088244377262541923152294186977081090945011449760920526123022798049824757276053611630006279791193126431868873583845306549296635088278767855675518762795559677126544826265804729829167268858585662220277224885592310237744287966347949229054705718974954918960786271200656712883436469473147930688246874975079417798860686354026714686777233593985121301042669634091674701811279798025090365675034076587956412004236569587401615940617259045691101227330511959884697010950683843858786576541285654751484815179742033041592943387303757872506020252077957360850429922609360355373626449705551347096820071354234206206950614958176850617890380702700115328495480032387379083049367130343986827254389249023745993858342728605437522986764713530685418123619885716912768420645700153237687766933249713227506451634284556310525005072786751847645704312291833259813976034145726263798189200846795427241400340627660545453463727854697461479963173658247251284011794864844182070584987958949460363445984379456187575528636674351183182040712929923466441666737594948492171582571752494855845736284059468016315138663460591486758398772400094944111155616834555712216012693816450056662940192331762061360725465838732473931817983997525103296248021553233697005757042236373378096301240805668890091202709553858445287158101264779930549792304062899231862208675427468699451632669055245408857597376215940806171461488886572227899654890710264071435119769266320202949581046441436767261347972768424934539168605639630755791319425630402585423281715394457579420425342504787482001201429112903129793838720837921394043072612253612459262665519922664196724611613897653798026161722164697865083764898569873355371694569038655219468844339427481861836833161014844156699376573643739489669230411395549895466701155210147973785372135615192637714080242450815876518050166421193202604293059747882092701470714951557373563610700428485648558777901116422420158445191478438707533236851873443729544743715864381042114382095407229823125729941027946204772541572484519734263227014765330890150973722116056441763285361914571539699973472895551269496562659785956899864421955079221230525328252989795890009565295612175147288032567065102372828427015275363756781631869636159596874386497722316448431371593821792340432184472171228811498714233733057056888736577019135958486450285086188027572205698462223790428619184868989182551056003433359219512143771338174012986586900989889786462062047788023993394784837582938336267780437465132010603589719985632334765934670828356920179029331699429849852788785376514434249949234075068207914615907711899772724657282509799952978969409728285410418722663091749851406780344565521240146094556311341395665164473663248138599276878527014834962413872889143111203248067046712302191168904571524737049520029029216894958415820838779324329959052507594645887228476734151219426458561147359795621101279953619541474623172009794865333212732952038184831202187969048158382208110857548147378653576453095585108148725525784035159071247644183697879061630384880161418281928755087721177971297278863492374139643312106246526541776931926237049230593317835473550753689347117476274386666106584861650984390281360960093538659817290989987529637391711369867058020467860206316635290164749747347711228322580882103435626049562264887149892341484339471022845908861184160822895156989847975593262876651089327631531748932151654887961331794866488806190746049289832157719487950875771597853374556008455394071808719103095031339432590383022789711385273137148854876994861403082876004670713802853711800211401274393500049428267280940334915098851847475815230374892990521333046261960550706237838338698042333009080116446600389201266940427319604992988933311054156267866790392745988380103823831710367570218583615126136026298363125281436469980552612058027462360553018978743129518882833574082422451111891292013774976561427311524703934484970279031735555172187114996935798977267499520590265153055129818756362685991327053983781339147881733414886247999163313696505664822146735896682302164030188467697855266548066989920794502616763455048023481978047690205956758712870669740423435192362829098158430375601153959188103031373555117346308918892931438881548820143166646923717140803672111139826712321200501281438292021919518721733132565978293761472877595097278077173345738021870854542062160118635319313820888447829868982718776703823006256836846912751821616570566450050951379547014308298187939214377586397348052161039116276932874183226292796944084802965296782962775490443304586432592712557501907613149098539659185534592161493017586090384567216788390257802906192828878227385165142181465892299606921063701635568414254585890996200005925907674895363626948076167615305287534620808703663279071227890981238917753250940033212494469620842527907763407374324164625809441131690466401147204602088327033168350648692149526107919073952753283303446463826480549495734186080590814981635152169687763529016977111468276806824326357790571043461330022757016202070649299134352380741324601826008434624783926063029844234112129853337642838693327905834546485518515924273484139445833422311232187283209684124516573426579394346975246598338483787349541957227786913087120818562181884421792640418943914564095803663570962582150730429652731473153482138756495131116516726270947730741604152598115360204665664285001358205561609249154855606593293656442924763273879650437237714033929315169003795548614996501818815050127115619582501584638217859239689680605102512252767808912326942308695176996616789538540536197131353321339348399647583370420967614754254879493712000782484969494819997352054137980167807809224431753227524013019623843118784185277610966710290696936782874671198613355716672526405305748040569404280010001659252236207646060177761410698725892185965847155183851600222495183002904349125201994968182813597423079134510642878867658713869250036356740648891390711332164009481025518011651234843177474806092705192598718034050798691690433949266849336866043107062540535323107608791671470428945128287863788826384405690356280363581483789863426639362068148951098821620935856660481031210344841900235839947011018296745204814189477798136015870940202487951083118874123187159546291861280458980949193815016961587327511973446758167240525881128746165831104236650151464238796273460423501022850132375503496988243785849200048910838510852930882478829985204824756386568990299134974455383037366694475247914488029407914877640391138041663140482984708326295363652263228661284472139065756515323955213825130938641596040511835978921758531072839044349293228121478890190771111051745946315899572779313076332464887207299631083580929568574708742364300306517986360015597194187666975831239209653376222642769210712771924720439486665009496459581215219321039791433851734412569969960726655976983856359126110688799788845769144875754411954324952207697552313847945147865156856312290819917397494075483963538095231152534243525169365243102223366891048893238321315329017113494727097509322796803559283906422511366546343436934293404936557352282572574326496380592257871470490046150788855559573083311673823740852167868801153554537069582372694465260834907155123484198407168092103352282615666321871056427356280417386347117530385895259798563374061672877000951732292494572653831514711671413272646273433549377230893839645694829599318722579206125196174140498301981995018260182103757391284276784525875710891012943018805143650344587733568403328842462253574943821781235774603224042855948205784946349256408952974274769051718256876281283356918385606187057321703486946768037650480157414194165408611951637369468156860324653800535771665310847425238234210344088965238645645906759157153359446524365733769522014664973940348769609635455425609019644004909956836659649366207076492184212853485275675714245914300714639040723093723642593374636189826172662956837499825918928160057288771891553080750469751070574003235243670655468651931497548958132593417033182061826603486096198807997791356377398313280743386285844356109759095566267108243358242848330448629133172233331200270560946549334834166529924795436552807847038074471626361677653487139249218427039087730625049356376328245852868418920238310570055418633557509110083690456599229316857118612300337744841697227486854398464767230486318744512596687107716936543674603302353861447389382535238176719689973183801415074424405318122326348247632285864566043271991331903533617087780258673670815787729772048792047398060162853033721824139833470283471110303019252758842663279030028039980451583811873990610085867936443131792669023875597861740811078431481162675729925573501995901158224923469392728903442477353530513142268533166759548612589507036641449813042813477091939633222799780693143841077174242837987898237461421767933459803370698764275046711216082978869621369121027507133879544210400149910608749698086111212280046904169200520827155888351490568166292226110867672775554813487068203661746882719035761862672630231858853564271893391134039042048648121660777536017196755298803300003177365045971319304153857925217827654182022708871428701693360662231194234717244485710535580600477145190152656424134882999389577602472546861110616785468344256972958297232743687817351959343677782224195585227308313402360384572523540599677761422738021047739195041670779695847974560491639226514893502168403751784682527429218440574441306222556598227818726823309087231034493155463143328111733568127418042777314054616948467846448873817116677752772054964556665169540844060450469855972496605258524593354833271520024387299569721998159902701183270185186153867301107014232832675142162038836892429778922955241210455715051176488247408723295908755023759356449086281083950980055906194071553458548907648419652970963532594099156702843435615005210301256387808562994979740712005243829344170932931130808581499057149943386838437894258167878291506982683775473059966812284277307720520389391551460348150303650664578381247164885334708134016997552707290449284080181051159926687576006976287387076222384750890519043549410320911984087065583019867807345255288437349575979123518418512854990527903691874066568520331013450584989760436659864206453218695838444455513767586870064541616077976734364771507989056600933912051109550648564404596396766616188482762508681707109679876079580742102714061950017416727008418467008058545583432196611723105750213676906480110174170016033728371453817335961321241659712203980172269397021969555723075231419103509042677253138931935304447924815951950965826838259716294148381931749585873984991653163785720191455364857021189061341011784421510385102781548552636301160928188177251552669271787044686249914010222261955984028980862670155262398757604924425339846530588419946919273912483469836406280817000694398601889498882648577721283154825444174235017714278762437324923539435851795608529603303753236753067206043609874620457799428364001097235875606515244217830846816844149844323945264184574295944132597955527177549216409513872890453402709039803292984214469529806324426744442849417922530635422637285688419163354175045025465658246514380916404720206566880395208569681164005802055192387208745052904730638229258721159565568824319248674099612550662633882879736639736035867022517616999763237431611290656571985428153150635802284222452292759270490425450158578107386581621447310153044594058514297136727483318535502304007388198299770545619183556979003694300970533062846794303196334056480483275904881961999177555412958819674687210423506775674555806054203739254879537014104574284088607097172884204014517652535079076984467152174074215643073973923521840091351325857734542684255455866737261840328417280867827442285257526078513166379287510780690320056828535271724877462816407769129035542280158006510669975982202525778613489636010214776859127514428869367718521042047177667924812424833086715934581330381246740573306569146250306220225637277260947413271096029641938235518444554486385812745396015217232276269092141324589077798521598206864763590783328163898353919912650036625792466928747453068612651312314927605121307557418711305122164791101330383671513651895023917476751553225301757008828087576048261750827167768262462945231894180230655007455736789775437079647135177152477242352241456676512443493276215579079095468508488476262728624756814634889712589864913483299158714371128548976028526639097302632306894415861410393846357368199525826880752607159823703591713869729165240280747895812292255733817481500545958564571796574070491869648561406058031648678748144537605683765140693449990627134106378946461610546178237083852194801468492270080328904770889722352938775250465213637355542257243993873829972641629938554576668534233013283117111173918445371054714955225029192767783581324638625429564264963275649627469551257030561971149155459700284084918407888744846461432308819059125143626504244169026311766242339040750628640258399178929450603044796083553560755156594537894347833169134635124777522211018515537836724472530771091015359546796424103684464621534769546469363010732393689592536558892769303306567321664714982112227075024079530952029044942640552850376492634366910133495446897315828598086727886049040485056963911083406642962810538920216737454346733480086306037672891309048633892306559630099496361231520887949881512285046620221477117749876720879781786690139224794031083964526212267687378395248061258872305427804297205181933844819620294157198789927195852468473641417148719271891812672606968198169676618379435366304301355782802852664832146012765276562454553942555404897044537364671602507452712939250739435694843948209271853614492813946070280882801014463382733868203553576951970654712688294093693984656778111478798188715329317499658149769122033375306101429761668617490117934200332720971786362657535214299380930481507331805103723397959114328147931410000481109433981223550145222192172899536026623870107905366185184583171750869922841667153852820239603445588812208968410234466274122298997061111755940213565103065118709033025368277139603774584570733518888033065967283735055091714483880288794640840048874896301067712490796566289568792649277585462656863739060336408276498982722223893884661092251423663116414057879074781212074549079570324051346563748570125309826525360067216625992599650811381328974413264087908554058660133738828129439309722939056916956150307112973188087784281596145788944183534118683190585344596462322555728990811582855224143217649611372216838619863156360218403795863712452569936617126441161824413165461805563878109525849911537075175519699696491893351265725248761940743945974368634674159313425855584335988860804978371718081371991530952223991687632157757212454738837680574525598685749855478282736177939960283512813861034889446884480938739702787285979286694757981341145642115183566109667131495452071260689160253636330120677189128732351217071130800276793427384949565278583100985983354804026578265727288412061920521684207293679089225443066545777866332058582909983159184170109438132086128663566619096494880355797415481038556264395087531102814124592307805113603320453166686670002567355403613556800637436389429006150641893771256336311688365702264868124793689980187604491361760533041760542579456537096670971099546127649197988870891564592211522153377990548807629730486437155097777294276162863865001835346133200105815678939848848606386426660815892682191891489971568144762372056531219362310165479125982376959311676916962282179238185216531710153869433767372971279136536746751455887565940464223143821208669251647299136049816727195108007098910053986316386025634925068721982436121844229504748506416592238623010253844529269983693846613596332273276788470710296230377620595408181684911299617920368990518044804680144226979029464880801307300668130994366368138817773144284189110141118511871752448616081464905530510522032928708798192983246697763378912578678605456307146280481931244523713333176694518712873559174352177541504863819978785535747829060132644518699226346609799519777178314193304812594207541705503850869194692285482551991708656609504678429704963508289498405530636125649128265809078777264707097282471964744077088103729425453824941744416392078021438487341656510914003989006969070691060393313273530574108064314309950896367119892645263490190398110900637643579503485593745531515943448939811669216279504765601818100337624894773820276686287854775006663988888170485728724077524819814549299896679550548816636304106408252476681096610650332027459175251073907175646591464700638057471793487558731688967769423932132684894784739888140810339883024920997727358970657467045073702119649490827725892239965711822234194791362255952018102401318319263760380615806615263133696493473205806587832012123576924625028174591264400371754191092522955334259529611872078626508301847348940224558268271242883415295642189446837745247821403484036583737366311624527583969602732947486259597387006560759237991115750715236018951675229214253397327348024605832879619022433142269987200902875008210971876893670861857963755470899727493225554849897583447930540379211721216570658842246368159673272720869333646506850566400414261895953923222566056606049432965053886005155310125786016459631574475178798473717212106860396671211692832811483809494824208089042259116697535880968766103981686691564547091824120483404411131175570086064778516657040020642983586443157991576392048131825040171966012980568173006077107552061550418677183527535449109618676105757576818098067714650791706712055737222564049900119248928488943113864996761587569591968185499620937142927631263314339318833617828633074735915220880965003343684474814563138514729093146394066334469315410597607628560377291103317685180163788698459389916342070693750511818989785336027260011913530784284610781173512728065684301976901726688223729228365919065934347139677183004719959674737923549388833519525021137284633761617413350481946147113677857623785504449675842158835483093107332579225701902712946873320514510991033545900165777186745122770690503799792966058099517686827952852303875887526379431394945380800120931322490950800646227052337762673303858867634688134874895500045169010602473652113357112948688303277241732938073512548738443768818376647123453211857640577938697516951969741725937592531725531429109626071745942141664671812978555053855191922353639217564464308602739331871511775609252649651485723776274606241898890417204965794412873477782037478517878011574724406322777178435292142789795276248039936178038895459550202678077334985862555570453012302325987803777197408486530253899587380291455980380958727686638113906676956366710496307692588648356347511755051669784177301381474128158123312687230438041577008516041453160870990385683969849754066491467231725426050839964943119004249098513967825668896007808945277035978322100450510407742002982888768659620636714625800572230076676824741515076885917338776135740265760138786615967375104091632207375690506838322425017115636295685247239312250394200492746175155633573914676045332781697703114984087791491391836740516221707899205773039467673806248668858251239227228913656069327694277150298405033671599565872560355933302794022016697776267162606806326231714888226201145158495783663075560062892156865152839599075362535443658721172497786332095952688862694174498081333408582197774923110829578265007732441955335453047988593992328669051746833555702146553866653509085775072522767133983640643988080365841021482137713110074923202267096535513810828955478387746723808577494118409579373410663332925766232531940239698118277424465227344443481378421856628272598152464615585727592348749286570855168927185017521625809129730527172745460143655914847145779346054172019515408965119028701775471761639885522196001576574575207496758767881430071262695272232721567257035466856719622865494502463494263949267342152086707020700205801035846057985200109932709457337565037269114716603243695827069055029165656668824008818553761785539387509171465790936564622522631980474124137598622516745794976831725359805112996291120611454679568707560168981392502079951458572180243803494129720187517176019655446948126859524239626725953363654561989019803957240081355812276975376383171189593526817798955245895788768376806296631244324743637227213965126959662273255038456239483994262230277861296070624591117144333772798583964330989462818682811841142499338731411280581738710357217918803547618368982581322938709234762974129644388350468548877032301700216848040461046165681635400643242155906931492027252379236366511444172957867161631913827618096532322883302484471069220539729013024082785071283853665560003760136525943318287782803652204892675941272189113479856850780691035895207477843175489183170055669686550468661709778483755153700505802547040199294966859623021733920628186006957724201050342723239405286394068251422477678093509737058741992448607344581756385464577186323898789238950283563694772448290660437844843104849106991591467422337087344407165444118244610417815355271131836984231694315626995005511691459991412239525300078759847971466997335480750372919049608666930773929995401410391921813797716179553090671305216764004290465192410453644618156943830962913311985566824243599626333855651898637834212269836740525091083607126263021959315193525204770467733395205753757193521212900484233965279542943113289307189548451435374997703661307088059167266178040102443563180054837469591503867426279738427528579949070545653139513779098313821424525848786434602563137722355276202060550994194998743812070165152890382409249771314916818907994204412703463314875644011055425770066548319547322878638188249246834231676624274618827036955412977798637112769813289038723274041241173445684078504553141832597876411859784789975626307284145219492978771342594117066870169995781767037735377243264526638097687680318803579294244595428402138995989272837349764890425823395497592082644784700823228445110975107984027689539963058418282613623635953539342489136351105267824656829157387419949840125127147042862386983654345331431149137984922474273665854571230985732518203469512883192203375562622437167145415053741112517009840347796955020553225506159932101336138133432460005118631163528382889319168845877245766374720911113150404216325105399635086629255085721555557358410222123462139806335336763293832886004284367154302549412214926587893558864662619909013006700829278358498746209395440101642097609565135831720208327275384226468671467278096284167097254466659804248969170648029103369874777063481896339535017191981669102569000210504196106309425051943044191214933680622308566345132446523230606734215489989837908251300686504827314721792713350955907710745992239323682372159021966998145006082398754097791752393366922396785989722776583749288664193356585773547686470708011613698503692945879209724115860677166745667665254315756072200179498720211614829606247610740641257220273651040363264794249214653782945735103149796403844119332795592310330802369548100674567584422964466315815563941930851051471698703492955255757264962292283571334857457880946334289926950406322222460079444446476423400821710033113738530970050229061661044479689824074543010393435963858828837382128200504193231523163080383864219397603113585375807431791356217145189010571550425656026101585790667167530005301457983732685744860958232366647561089511178505236235605363968284803948149346496657268812044209703960377625597575320322013569458476872375150388638899490006027115769613921745421311001945454963689355447979117749891417796423409708535988559050373936846268831981195194837244066320299176687209271570011971095011001104815132113499561512703136740160677945163565812668685901402433421648844815048002963836320027384237792996311745340029872475510501631498894568332147920392072556181676433109427659079624452322754335823633243204806478405860321546524457415036433151428222080425904061503777532838622351096163223108459993507331271973263822729637853032057277119586430631959370504300328938071095354253269467343952154015162975207149703286839573883506465246021086447231900622452734968200328815924608376705695697546746073497456829087366456458557644870543571447730554924053097108337992610256177812693516898958817536983001098798527803233753227036750831291730780681816174653053380435946962640138099971513938172268822799765396557977551179258396037172392432628596009670982182161021896621148440686582287102667604282736102834054089726684458339183573939928800458521533073157278423454849519742256611587730080143766183215110200268256066612983125546312716277001242621042960037828673618682621192278010555066653473809629688381555058184940898320412998435182530442760342682852863876386035540095148878986605781493087944782433732491579978689674172654139051548849389973193320747087294777955614202531089298220918800717713619843742101503918882383433372530041414800823694957096127568796777388384851336167026478250933610414330950326880439218981751458035196761652758659968138873892382510688852864991773846771497304529405223189944403715850412320420612160288176639796785189898154197087851215693383878308830397784364187783027125005130363356009052085606668733759688154421321806666141101615754026625454095215409495148682336059463937364544814038126412840824140194364212917662474644805354636055897158445523536148950205546556943539945180285029855633557115587917350143314017966339070713474304842458695737730409469439776439854445687650246775112681346883374149504873011894085095970938586318469237530062932892253609552858362147735306756656890762182942106222576341371366012919813901837984369268070061578574329995058829022567288408085609001829954830802565250825398350490890402537053327551413124373580095753183049516308423368425826025850020354314110826076747366547922846700247763622572430436083888588212769477991965553812421938759669272159286078572720695607488366967236831448496452225521757617561999571018594003284242447212297286988732871343022186877449001761558166426744265100146965417436198590676803869208527227048118973815533095009595288784437725478075027312478463139157681687422695971546265944632963082915755224514898621729585611422826343274737413576372142340742532077520115562367215914325784156168164786445148701497083705283900734608427543961959429967552657263259846908426845608332750768638846705166709857764470326262707879888098292804585896097241032593953930899324600897553064668457513244314994033860515445552575943217733742304737634888586967737378123985627431244882124689505321456357260520209915133454790744695424997740601227509327849792626095796092796092356865175015191721014479305501574397842170490446256744175437807540416679011240868275361440474958004713363501803692648241782881739641880143812924349161411985489074417267160716189344851666496275975903843493428680476065675467234336727820961879308915778921748670892942723984361815978367145409130252060925405973974042183607895523366190963300390093110129227785102534539438640546586825508694818637848283797832887464193203240856452039885808807622593595431202713536747265691906843581237755289247268079078933850122710179927943967468870289592552114877001755266973802521859009424086505409971276916340944771179376875860349202397755862340595550759111196636150828805154345230257168645941406810857034618594919735880378020232024674664561210147936122811256607690343949472461073358264071054838991386641531063595834401326724587143475826129753090202994041147409072495324308519202143483257286909029991497560298373949693377106181019093294346008125421449646804761949900400340938196864057888200986818462025747969663146952927525552783097678848826338598585225367165090849147169299123781757114431757581139546138757300471215217788542863451523931972633232494858124620274808740563947349535915097409099513265381898016582671430614373791282620403545353482606646847273105818311769547866302845728708181135261723263817787225271785823508008658272465908368854227130665034963608947717116710403507691321950018518287669828030985243330043490704806424768927107610742618600683162879045151766881065278935009118221773919625371518079726275440861840609588273279106896444707183418408293485863637972131494102543264279452906538083776238724164607341548783395425374194030126708536219890185144029775608085801326624509538328781191214935182362161583144299268911988427201146696466240538291679209981358605095299082614815946465789552227142427971910058136637234564255715956572972205614177105768994722083608489950651321258761438656480675231815029381674589917130041057733164956206407749971666852730124431154928733453551590833739039185409368368767696699998091409771878940236901752024604066944242537294378564317911744701768542651851118872672699335247376093494378730102861815639088567753028213227008244631932288965076659777453274183077068301154614686242446078690541710474377765398067542351984869812208099091136615535305652520067716601254218587301947388530795273386162358158393036539832923581698405346120382619111399710954043538133401426494745203590467561320258759003819484829584340619691018652096850196419013238283775682353047235242290210041219375163844353239999764646239954771798071957676217140914433409015362097236301603074816975944473831513918516827198590423913007592647003720980417326105944444165288089944170786640053914803730688025059745267179509403270550503044725984484806956238652217593732961167603971232813728406930574669655698354962913552471933690621104806859798241844130863936106253954527272302356911904869300946244215647143695301464190894251357289247332421158926914104653060522816006528490827900657579453246445616425942774456857302702838618528839307301841234524670127364770905325003272132146590264613915014251551591339590373261108967549582757267422571240911576435853102575282108532619416455694181260820051997467674084477843169140915970258320489785199244115196215976992698803373671569109595520781560379728332807743863997078884567195189609127329291232187225012139585807726825014456973612314095050861508994936458823304047166792865430286020740738748726997811071622625101605900299412991273068979790733833327254854624161772015566922109828196508133171680619896981061134725925131543633548042422213088826152657587540364546505638759110829907204622599145173052966678532056658259195217626345860645554129530055928087111308611055070280651926641701652667533830262881161117414323315493146006299386820239254098087907821981380992728331760987832892196269410847026004455082226685914083705649672670436707422112214043173539465350928546025478157767559860835049677403151089779779198030681972849728262690130420049918158671766847357416777560075733530627852967339148865824434766614298644086903224009927422761305116518039858987752878362451854573999884069896751567180486745875044036460550441922057347234107731265376466086635776429812791865508330588819400477862590795267087799393831264906717610506956309783406123751238795273326996301382259821444064992095922770440844552969529993442837115840828911473572794675572495755447291069969124019167021975916592927639298088337669846180977180555320313147930498911063090080277729879960238453000198652171843357933799102748079120715928941992145420016207071198058483935358436294793594215497668371121420867379108764786470590026682824242426184455094956806033131218832440158136084806943876254398805445052904780250330357091516729905871702223109411083580501878327204907652116946751842428661420207902843749564817354267120351546402418658643862206404706232478959210799667537462159771646228850489890627472362589992877470558614121823485388767265432838310803623175062126578991184600476346316496353648344066009843635160526372740218601594301544309378936111998204852308213061943701652824299184693885631579655402792442502014375818281911201699416796223934859082174314070519739499616180823708357490482026176463175523199903974319876677089148185000056083887143634131587915535124926050285547940692421678825720660474176115267196124661991553060299631239928706784184860806069901149940970003050821429564535378374601381751461552576302939084019455167869905333336605599536774488787659453095791279519227802116607287986650432289948499467296529397447520972833770985680343435676770623388356456965183927998493174230514450047057991360025912935852433220306193121934613696440532708342084472589509066831312158052256629055081168144425418578565068775630086397610885239608241035323550184169692352196054795139520198688924798948565594825105839903022198420425342386132657124724088262937845827236863339656648314836384324528967219198994407579795687113447911350455189653092049261992214724044459321485977536677816420217219542547778043240021034362198212989363850045292875478576260145219852219166321722161520857449288356488639838094496437324094753768195241322434799002547082376844229317306943404846762858173317882141677331507032029459818599967513320237442389152752736714534756926018555286509468324134916021715052030951056712080785169771608715545274602898603843984982401672240995194964384602015256144609288313546378746807034676908257423387723290620962028709952834525912684196331962997495707815576990119344833779627069339819877309223840776317336241846754724036728698086414162768166723865704562110933536671596467923053533460372817541016023556541288126498792346980194510661415101036732756041686515319319400968545083375944493852127309865342623457515491668718023105450554423700871389807129166480053933245737652434346717226419545914656514574505622481143429308225224103045975577766786143816597633725446808825083858472619313948624310780892407754756645018497483834290922227484631257406958110240550025999115311570290709448251241115599804672514401575891969541320725836354206903311364495616515883587157770145852152888143928142199070120615388775365329125706993539503919128169731407274409212478070453214813141399899667855280897095432530372021237517997064869497780741714126527403772572611834681405590293016482929966540492625828385541995703485963957218691349797693900935001073249371866866156418693678704696162862596321519180379293743598792826229853137107357177403897259003967387934572045146234050376909014607931320017899535373194739491421215479587880883142462518813601912755851382235467217166566942227435223961205422353306425846910302999392238841999918904304744179832984963169411356579012135346417892553131244653504076794049217762276730729106794432640511307779125258306874387244378811159998620350291931428615532616783298321147810591142676565031836021576826267754003478037828239351913424367696197696329945560999080525604523583061262522094645331824295570552510968811204782582350477421472297860919644285110729524805611124382140168411299364003063357606186614071119466665920957946631603533761265208779578891560736537476188357286416380726756700773976297703151372057015628924002850131106889023836769481755674767397613474735170915679403520416753672866922834154095172953952315218707049842076777124450080526581630096723654708431370086351921426926851051627345785185378047165738875359368348789699323072356720255123613508329915673214197440864470778961206832605332041107171462127215538657676876645732109768813971536364894510847693560395519414516845703622070214273627680306245451828742783244784563629999108221528373063337372190172962222605695358403881853666120646645134559429838310766425435125376206614592715743720736597378579807729125320805975238830385448891392804614595495226301180019793189281869874119938138105546963503708729200284534512773001426781218981401569129307979216358636582135793118650487404390115755744263450689319508788082383365726973159433217921343249898225247082812097851827679275815896263995047161188705913004817767761822955491309810607230506275515361611087409723166931398935678111276281223450589628312239121005123444652183153133747570727455189668231944456870853163228192053966339058056654535389348933787947335596731756877425358200575515377885933979417712461179369137169752631378769097030677350971355639008939237493184310040664214145586594315446331056971606913617203388148588909965332258029815433977596343381715322452151220372316696582731821514187985563186532781550342738012854063712543608175435744629096517840651319097261485525145111166581845148604254831908793339606583335809497424603519852235156648801198201219429514748724011237394148036975872483208824310060504618415557195196266216395039857350226183664073045003623925613326395001240185506369347719710843579154322034019862332946211325811966299029844357756738299117433477337617600969368868095934847434775525387816438004117339542239328977243902336600059321405898462667978319184028298967735243621546014171501011836549928992295665757005753645079106468675142753342324637230973636849253753387203366118702210775494288622383649686103846401092122708451601855384276247242135460442718291369575544538807845724453105019719902527175599644573990892182455149971192001602667296664715159324540136214421059313163065060054416331179039711031792434039715922614251937286086345310113462373334928740775899233098326609501900627100471075530957302262795282532605506748887435925274414895376298649454021640837250102035515514037988602619802930319037217777708794281793357403648628401093538198453255427153943335842911351804934246328319077253107491430558721394523068884056877784054840097332639129793459719995313920676211523584662450779961307607433058877372768461136009653051213136386735967616989467441384343886817538716571485897037070398530969842963458370978091361789154439367765529046734512491107747541262696156327805342018698074528725788611567631253337232475919513895798007982015300817186289642009678455370034965169589778724764336687099106111074379359933858899106515356509782821759633209446260051764423605729660744928762220398800983839260789115145379022695024511385662876591658842782488735240848354437937113753208725504424528643685895461915448989906186832582510397116667211720362422124093183392001610972021531508495349916834562650738148845779554675293204729526144802519482275894128883949614355795513188979367389610074099335678360875952780760286883800740648526621158155794679498874814423219188626835282331162221181178662998245487047018571534197967654307920715094322590722993129224470690250399180820673521526915836735103321843585718919448037402635581247602614693334755630034850950374900390139828090385817920228685229220211346737057865820236418902617022820443413053450455324021515453052029787338163618860028093028201107441677421221114057083351179874208753279997911873651840504664328136850977838327072063279702610407239246223985053862145036569979202394143319412731759133650704451973851285576427208845895020504575021880953930492982557244504356938294494071648328455435234422981013469678867834592192605732429496473573969272138869054672424284540374386965799165755927645013716880456453969871935191770674404252596021472237876054396077499915218125613598018172170315454547765954367634680424587630334821029413142064218476295317865021587809704944865026980988673949505721214579942584412187571038116182807124646496963933134835659042762719841294577370552908528666361116725511897409653225319684603078611835037727564671742352294260801293932386731808972182183256497403029444540626841458081969068473339099578475742107331849207661847782056139506835954293370528645022899316264155188418191331310212857317897268965643108744403580547388484959230290585743048763816025754689102306629442960128436601623062926899165366844444841070063100925660399984273879157467767707223325936498997787986802221363421087137771589405725194749951388192694920576896295496403307311736097156584111826960016188055526797424528817953763238203929423777105500098106601129853262092358297118082596132260643761078382552934377555987481858034360060478213918215178291235107931194720302026294553952788028605054593664735764981290875008077931907297590877448286347435498924481608091054711977982646560970553624619642315011470421148658108225871383208156370388847993822381897907190796297642623286235803151544652694323117324954610361891134150994802368122103138767739883105586564636439994945099456319247434614991332551367405293242644949343225848799902594520903182005295010861810760907722576654538514881129685303532123191438357533399539939059707569921435129437150402726554106969986559007196951710566466342718257168959970804889373178022035629558921679445295819092233733979150930673328054780230019610250961683701571594219648036780920130198354336683314437079746302682056737110261923647347128057650983268040489516691430558406242006822579534471001502627611240292656188567507007158620290027449548518187533798789446322766075001056742343417311804303837095931901392588389706961862319140637923263474028098236545614529113955671527116954420291187920840304231350166805305104784595568377095379262911619688742632230939852132784849507397998478985568026527840267119492670148226934916378767550697535443075370720132232992337616902684898846295370729345483712363727199427155390729917694875483870913973122307211267891141992429120333301364779165833758055123940448876936522692635386111737612877082508110291059341891360171219928339126974527466804189450509094898324456861142327293386798417815642502592309664773134432700571828916551668515653176513569015023985593921917242919808035887959909703275284990389575088517506939878019693383386421480761336108350790599033796452725842200994369709472489995499298192168517687757569230222482199234667769435793645365291562331815975515261471393086543840466922296188114131562576951206536094006067367133590379217495371461661460520935383565121023546054281597964648191026971006289376343925285372783461161190144812672063042600920829937623246872127609426638918078008718379420447450912817413490142210595280645462047349623647608966433892996525697668716401154343117362091594109560338842030149621075921085765958685231104447786176842733057844625020355536262245719526878205467929723800917174101797819414104613926093252895875715415571422220953431110663820826568685684550702655612958203382083378063124608610875088202982387626907593478753103580806880076566976884181067133481755364840544418140683052673357947204644843742402064196401835667325025323163642289365848956118096771031832602294815366918178702797482112597565612373913347009056129292363136787267367254041473656853615569204923916583336112904399939171151014639102792841677087774870578985350422153833220731837073555476319802448929007780482674873324582330457588142696194461998491947388404297515547152225435755797882766179626100971236118212881051579407547720582843770769299465949683931033809565855719472131426974461033776872864120563766848975910781378969818363185564157900796788520277529175732148452917621249760574626082858257773168124308927155419283273690523371254231013950532424027252225619557863290611880003497116709042442623623162778877473209481151309112819321203700138400392479568936265933449485263185893739820202678706679692043916458481290739612329420705265684085275024054332452917796728916698615645707557821898767034227369266682443360203266801335519378508715107775530359320058777796418271690248304579610731603842557788279360085219816097072837834755163044783460839524171442900649293907581095211471065597410158095675253335904660420826455667563640216934893785902543242412073902287643223253731237935006114024765439781912172700424508955127801799873209952313035561157430574606399771875010235888958929445435708105604059294049890638599473138998407306706809189997347419980063542333838838396357913636878182447081162459284873148041980894470281337540767931469781086158063942197224953491524884995243304191385198279262595938840041615103662611515241817714557133934728899131936287076556210379716947927634522699996689696890535182303593609997502426009136965917688567660191373645363798960437304908990714290118386703889559793998920825361481364758508278219042343504143660381963314042215011287782560697481746252579539367471057839209203024325055515923836754778914230081351362710318549395725612692085303866230055520298308005040852442583121854529770779630512460318409292457791229139608950876825578852151736062665077146716983719816753306685083682264107316541023584378111857322240625027931532499888297769768219271461960950111275887991205285012557289345155585948058550810930323806022281992799317779768904892811388159004590654731302843649678099162829831295124633345048864752623811654447871148574470483364169219889871757765941883298120000992201925398418674705382689477144586956422031385092412511405498696666556592129372794649532524507953123884100700343120717947185982607439905349577363230667050279341471981178356188112097081343662292858809436796277417275779513653585923526602332313739303097293828996880628951796929544628067106064160060437243830108316965044821330071881931582785766828378057947277590931871125604036078535652938901269561313853427620630258370822170320195927892053044364917729894071591979519405457720171419233527537315378350946821628187824919932441002310789812379062640719981578936265059304288088948048994545568247917935251723702116109244234820806007382044097821841960468987641794009420734375064904236537308620216535097207658621866999179851803516696735945397231515080174019379096393942296478943432186571606084449844617031369275547114029988435481791006461719517333629707443307374191024820429802391064765264834620987875727747078042058067157488237719811203814554227051652879940352910010564767859205905925680825599371101801790024659151699231855189239888052955639996432375897249611654414072321856801691431503724998637067130147196052912124490191070593861712876723813843063642436424506661555601539696429195188616879515110406097539315731679540445060586296245714721586433205163334494487996995552066307692839506037286577295454338769311297917344464833459861265110152816542562376389276008526841614867675282865674421363158442531360908789140245186214763584786066157439435007411001332359355943891459019267004334584490092330060823545229445896602500325564661435278679697676508452518268441154735342572925682028988069569211524507489836788573307406600546418340122594085189439908680269583660832794812314923969108435318079802607889323006918556145031454128202350181198915561216850725152147696843958568066895113159501732317985593326864961232693242430407360607873650417737400740013349533186088450395320656113179811523940021818898653511832751674936993260064737988624111809814751142509512832200073686194282482430922616999789348045848327396447406163194839087142103685812099726675728145376796999688407842299534495322259533005943562170374584688921098607435224019820851049539722894349990024157372023198065626471088358193187935737718226927310598234618054523682073069140977899403362064398088980719571331261453225966447184453507684547648914849053829829316105408649413368013670574557618417310440736778507439838937113731650638064248909609701695080718385385813460687260550458027544903726862664749983236875756542334715002117358885074984942868110344459823356813531028256048269374007879736526641711972719161679652923884666113802852277777410879681169099546767575745634274776144867850419319684595373757947402036451600786050383745991339559891189269062578205902540417814734494060112002118600671896531565127608296193457073800268794770032718287010991093568336094632624161393120521121810553442087383366667527004251241917223673505750890574488677970684537575232242823436723118689574172152406298861649214024341824615128964500237146810438920667569359061379060153727917958890135635625741650325788389943830001995406313661501001510657952277344057169339159960866573318621780161796704018086784485700420684979434491899784787925146014232277306132474465507808680139867907018110059709904184327230421962559889711719214613988041455664742808741019867635999991280623198408846604638984290848296114665467458310110707893469951489676465593290964885433103408641563764475485928455729818588611368893645180144029760289291431482273424334059739194249126442011774525877989851630919292076616216367215696945612900045168521094392052775912896244080416010431752499671249110616087912080189184628870171753115597718258521827156041298922531418064837926130456835355363760183566462532152275871101110674287144553267633350587232636692493331135899172153447430985344944304166094000082186767546901006415271122476611692265910966816372160320932043904792457967374640377117158524008684026326665470254280673740682880156164991789484279029369445453436649035496961735738929610869795543360288167583529324143817341664481197540134770824402480287204277917435962771619465420098929838342951887575418028679745779651367202352165160237789736038170294056834708520634314565680869583342297365333014574774681214512828627981227421371263473365598099627455229910121003846879624000366799915818071861545539072702354388163834993316957858217459012315340993992800968790232772151963667981015424667988266578572811491114949851161591616091452834630161232927038291256842596506271413999352376707031334900565185497223289661756578039659779307810836132029541353792696714601412707625852221080566982511997769458803633382806018966592130187482085585275832351485432723692315466056096827760900971540179887923914539139140236883611278896075972309792129167998457112619751379369251587156843364492219987871253605796773230863149966959046202629901270480816007712326517722973670441698450183626554469263339201726070340587354609840046386411111600266775302892697893165451009193432466222724539807387464307595945224783994261754830938434724098758844122284693930271893642227187998080687011952420062581190651343534612311843997211646805900423470460068867577803816716457087587539937522127298893151880952454114638386097260820510691444628442201211552601774670410090165529517905707129862243172611215630204954624519106708593371359624049425775044791297242579411505804989385028046911931466370750172323444041188750823029587339868624881604575012342723286963010786655112427168492131075345694004248839802095631208332758124186634982498937819559232455051403851101581887345020352261550954211217093361282409420953153555828903498797971015597847169480689118457915680838562683906400876287288534128350594972683004206441754482041796480420972074795864980302490861186777440646162227165694938109385515415940738208557867113293512211202227867226124789594586221728997391034962620693359002424457129041779199173928680455731671672181219790369918262721986448226247929702260958692020987991158567191393579633904468382564183790725827064358736131161816611624467349279135651333999889363497298631836029508847548840176313595128427894178609186287643255782550948846009797896963957488360826488567521331330498026993622193456709307328001712166339257711354661383864968126893969608007079706225411220255470572134891784732074183170809919406120390481825946350339226334377499506390646094094782672721195508549326774505976444455091652647023773861176832945912122875596079689449787059942834457131172148421142391170603819175849337604898361206066562024712797303160104076793909033553813588851426258736296444225278306032499977898898474753331265522600036580187546010331267957779565812889151937239371110692018390307594805925388794264518399621403159879246385943404239514662641009495941287806050089657738735331741482622660756103908561339338072230349801544873331550821523126836051524195061637855319710155819281679201750982050562576670236744558096750514067211876933892136370273717335726143274188722111860181950444357951292133404299131928246996279935819278081313636278816316340693533966994342262964653266800584963738037112728751783490264840012404075782568164729377136371925765231002491062191975769074449717592672199269059436791244937584348427347591028287212130938071501847067012047289936525078625280174763666524331386900780760112370826610330781147661928661360764991350325346522120993749462480501949170314594697287243301692576883279077116262322036702654422458800870335742694166602669236353504368934319445100758153336800589761275715982640481975015009025024793642812608654204506035944853843212115532946386235403298807726394266281428123820876406641984340063256956365208862852524147224362324330851401337619473321380604887394302357407036236874851334964193714239403875698466820220720092491699936569317908066497978498519408782371927364852874768841748446436280582878032683781901261167336714177643956169666244550219013611143677238600092153516134996937995325178810857150925357383644231041158876402220064258970999689002239867500431165536444222898236837333845677417368034326119262932465374261957199935523712739848199472244072920770627515233732970118129194122788570504309456855429611073150299499439038698837671726300297112843565469235764894484068072405137939058102826717423168517889610457369259753747372991462268113116336224017425853755849285422036386028941547098673305281622988438807546901139408411092898814403452978254816581201703684418720880148645709709224620294376786963826464076397599906930029402431348538767454395707546363074306630434981035517257521116556017194408522741275800964243518215289620155326582661400953035602447973788228252163907466682223222427249396164112347201093476790193159093485351821798215534776351868813717645711525428676173840753513380599690025606100250539362097124542568203674350816854465750697718545810274380816090611638028993224462396392954213471304049789139411150697192708051862205142093959547009505223416528229713640878002368450947414450306463846634413811388298685677404711310088787056335002873633900161671285156650158762864025568025866417673256712967142652009276232362122444469927107104055960025521075625856469415559396123846526953594638740250762124811663325752341232622213748172857309668240246215210282391204721942127348538379741380056969563195925051152465664392201865849607677744177400409167463420291791749390176707188530793179516649526168476330083449597913343035485943787010236380464712562740735039742344328772373265930387507723568181304278282065578931085742386939042226431767801590964146102626846280985763464701954845636419845085624866754218210948545994616135678007041680655423086454738054235427108725451638356493110744433435430207027571582661523903739038320498020290506697826508920913606941232836960100136221277062700479336645326160036224135435512733575259675655665997613352313867029027462338693444394630416276451547470383759693542437885978621756744351169112449775164136096673163569619422440212170641667395506268918809582240845658070697060844429836273570740442504837379145884742466890179654880412388367816229048672643437638112775668889035946864192806749337941394560229209417358691963038399126242818261604952120239721316655311430660269675153766686680375497080165424857292467824669412648995490935430778823548248353647680842485500530695912594300520344801655298675515601023819694196702868684551780168821180490823340398777972484435410046071481662191558589123573248195417727061203717622217694651385054903473490691843392206900571540763644200045027471209753178159198108534916432367110225746222539549309606091932115809151729046259725667505894608607425150520328984657361129849369925883648250789511716396724962847550641982218145614328675520203566982071469903910071216912616820048577010866830922274291945449230555397932890927648944165676400424136906804561030383635313092928417381313893433621562447320216477761816765688726175883582847266589376760674852942527017851425530365603103750162777417399177641707401614079841342029900553686811418943329705504168398807288209325897617407757513426246476316826281020356485973094705006978511875235853619451190530800132352665358533168809584232101435950937864896851802226680119503108433900891100661840469763361064872745172602855471208036385754082844301410628158328111074040444704672828740383685963099741745591676655619114795678108193321807203928274107962486281912305622330160582350272168969851396873161123539898698364445810738098921362238303764520048565645904900930587578969483832706297192883522390909418314503054677246737202707036700123245698019877067069953804426890878732133769164522884195187522883822553662403017765085604434722863535068088243410511656085934470103671760541023390021533728744887614986015694051134268983413054046448001590106584860498920321726110407101612212217250104905480863055539805422621141057713506353103499467575912381774156769193312385424700248813879655635166567289859809241170877753168483945909230022499614138421605783244327738684545240242063318514541607469245328175624660923130729851486609572768326615727299198430650728562555938841300996771605039378899075940182768726680633549204530655809702748578689594934484769616837445932814514475153462870311221743502749865764115153655857944319490550360354805944691194289258293616754345157856417133769429114824588400370540725030014403123855402130959056462051266307290508081706143938788850478371004553220412898911024849634375494392531715412292414944074135823429689481560420747174256645772589704828579797060335214849461408520469508073911134377143369040278474810322073848105924903291876851651599613435838167479530639154665839542730135839758054004274569953223145310069203778211346822502648647516239967841697039013904936894282008249735297537484920958077309103909418151800064781668103025138141947374212164025443161641831773525985392725806035698609535555771745560725350021843848768247247692420674406768199401655317113839301210110901951954696898219055075742590566750614041359939599855886135868204017983630163069560884453305539355563516304035615219513365625949759559987018201682195292324358635150263005389434228808655354609111137564979681496106348189211313079995228885259463144806615506999856663542787221498616886611751495788491932384550735992980712580784164823786264406022117423244399680672003347298948912531679846178744703248434625376296918453899554399094903804904649882478919780056260186546311173980580890561123646849883697122219051168573451655719118888538202537739233685720361799826051021014779560767632564855063887964941657597110999120767178443789462624737708494269778353616237396922866569969525155120825643767625787610714463959711737556380986278557106402106418499592643923889735946485615206613743812023682350798257169013599488314351973161728598002991718624164149807943054797691014023580782430155341718553253684955385633673723733153799933456698240523642460051178393478306638174938240575049666709404704722307260438533242052314203675633472868905753444505722968601255655907043286468842608960278382451668326875069802452678686913650985040088146798990300106966918224568681933181988768051697492178533950986049939567762468337440930152799371258958303454482864160872074017570615763759329396480292903583782827115492942884224783087731699475401624134552465692899520031517064092516780353201113359247689879614414907180256535115946414462196933115553507337486029688856628651017653662776499916020671314995985741999984230698154559871389293743121627985137930720754648187131341190115011420210615486644139409492307770856865593795534235321460096176163691621923920408777387002744527963372022823461017413931789355480123366868271325820809693414634541432965237847831114599354067279389019788984593600637809093331237360853412355054562785725710583832200792393690548782533077096472686504371261895420394140598926516754835428348577966685460428726120903239652795494935779718389648006361617273864695242459197853866942156866819118562630048646821841545403400626676078716415478004351402133875576448839634963170454970106617392800725796665647015311071669139071729034183731634174596261939664680221929107803667927624305115020326734557603522754858004831280101253668474732575968957303348775072062150315864276301257466714641352467124736426224088336742065739662080778839549227287503498507423763286007673559868674968364171735945371100978001859593297375739811474241103372482755407309633114916721428376676708137714035659867036235066835054075610564938016522619549968837356677566445308708145128757648614750727853602899023879163432462470370773367317792830576330782173258254456300406696609734123801214613056698814139030937985576026419352213197185185436203717800159809120208796662061441290845461199893842733912937887071969888496476821150955111046634135177697855212354126793039007930886420710946967277013577708210791668143328913312403721326113013658018778459852612616804642892352176331315054939912600083194011041889232743830779192863982032652962040418532838024851451836109394037133768294873321377273814880044606833189630750863737249327295043478554298494443351286935370506641585104454175398109193916384134132324716608497193768598712157210942271861205580295409528726099456158238806537147997168693884655577388937201297800701738351179666704324713791822179608350670365567433426039478483767353584412856209035143928695728432081782782264227634053182965636616417218974241714597297355540678828406568163907216250543487589338725462203986083818665170336960111884763701987821183729446837312988868232557248263199923057634259760474936325343891472013843131442416006878457229839077992087705146640169659559507619268857882471853777657797042891577246662517355718384730076472432725799704707560555266891781982583885146444208553028949876873976870352586249181606949642889172780588682395589801195742405135988644475625530575222314656954473155090025575014689079321473632603465437580420571589588369142710744214154670285176957762307770961398086917350182835114577343213094409330420289011526214208362498871291435287521400792543539148460160529561023668938708415582370789998851186913089069124457023202438944682803688114044817171523364607245905246380061329839901858913341802368126920200986732546287912647355029904927292097374439722811581855891741212872889978661361562166668651428029048539134714986420821726698787562566730548120127573287827411913976107616737559642416625848148434720320953997152995229845865639920328311203970159108412158886260932063745516320190827939688532462869504337128806961596841657463625149604659157107065105103908869836713369945367874306326969745357842545283136049143535879716817818302059792789157438048768396533860932844766702596524394216054674873171830686390306147286992638465035950143432090552378935998968556954049475668584450434963863313017708479114652111139208966362296686145078940158758740461460217514403731470595771821617973075255044081895706395263313133975104548902770271318948067154372988403911090537664419840618887538363138280276645184388738599652467583007133809952446242244029242033925433623959453702781169511531563887921135423448126899105494678132636887325918762226478478640869679872449375510432788194359632890759497163207745886527841696840139751610312739804092748140792673177793624262589272342619097331593799089264791153548276081186148831981194485137847141752913205806643422250580114623990919482162836009763354407798922732362401923983793918923361670183901522513995417298946615894077543486816083389906859214360255682989643505657912114305024648973037902986214554830792344458002424621905296761427554609826704301397747994685000939482087974285650091009032726061412757702241975020741539729927697562148781911200357416072665682810640909489313963973854121251958343450894800669927701475912753622396527062324936685729425755845118980077349706550755895363305593953385982919486858323661489789067530644740131857298535838514423336802927999561291950948556889523138379322013235202266883029111433861266857951321578125935719011618147181220483059715727313840839235731210093757953112125750466040174220169982872147548958748457706174869482219207345276031344050461361986341411694729751961639921037782463016256933047337232057990986666443066252899830107982511874937677103006246237530387378261301982014493411372670628855938183017951002234282971264460418575072831910017880674701295892100544256364216362361509736189232554557019762566769150277132163469278682716938243741386605442532291546325864466203051731653069770546268583444116859897960157371693319665103554220711036002322078004967132066992821633568320933725030191073609432416400620256711358007015580632925014052094082723445772641006125641749989491910505804779867412582114121040716179482361948642523258441696301527934828022731568371332145012397814846785290281161024481959249131770688706986395474271663871147961303945442417084922854603097304400065841161557964053334470272569350025779585398364201073061076568217591372352220579882694895964400511307414946165972661019750724656918694695202242204281941981814859662694337530029296272562117696932062724830569275236876806979384869415446536857004443104308756450652905955309490951949304683024608697028937061235682050058684079251568373845580187291511069310148145932850429185662832624128124746505154119407734327393173547833194846414086593301595915060500182682719053808297634155166647501201997545300558321971095115805488655072240188952381435883251325132306879013758843507430476201511054194043967029845673633643665450914243439058793661865842509323900059309996730879630660007287217090574566154820992687796219336588605298219453004840725506764108059039300658833897804761866508821372956605984302579546956442697552144825637527566452289511939012170191757919873060917980673394848837220069559639652002747921995115557205284638687920698136356467791671712379988157700366895370077511682915559011363378057319025472532345618550204207095525688328025863834193466944403664881877754549874444146357532709123243165313262134791691691583574579025360785076005447433782463912121853291179697236121342144630010828643076581587224764763744274217753660380755482089344859988205080000907876609792647050359805049450882222862914665627869846755646821848458816703524801351928507076938874896577580576572195434856657088257201393959451043562728633609898670001474159696637135146333025242573424267093292128367133034549152567915864578208481308560425274198503791108650329060426628347401297307019161483253295111505885140903301847500574519333269124726330811094058788869512054892031112585205184769224140465481319683253794286171888754212910683445429742810303630097579315094207497085142514704251093806564419073080306848622757264442973321460247641483676485725523193353861366311417489206441090531997827454323161715546720027178625913734123793047244472862006121721978356167318488523873222359498314006510317477674492325077523774633870430106389040465393138860057519716211166847939350802978974531264167785587453035564775623899207073480603739758764413196842665749499252964218843905237458658285932550432583540009265758119207087246344364173434549594123070995622965930735622503168172898313829845818174722026089938957530512512759942136756993930836706414278144264161092335528029075523555041813984115639220399128266834497840953982077562156507583611742194620973932503335926051407889171586211180547536718818759215101752866395343787578807493541633147524436844627912889705608335832485571748788262205186742089275054370621220163667243932107499639221261632094672078683807378273872778301113387784243103908309346465951950897445436832887511212646529341324256024199396064813179619186067657338711151083680747248152786430993786186695027594663823322897144414390074525672892236880827523112314726729447820975662814568965830170625357085592998906669924009371376610701792196364992498994094057451997517061619159099901255838130666554065021435365573003077802269455758971172652976599853080088814299919724983099410240075460846040632314120412583375572286167334819649358632697169237538400437537228423123789321548252564119828034762208221342219887657539332701110039354336826474793733385313245025425131129465901620809715210621180073278218372827631435225350834205356727305029922373084083569159839394872903242238816547099746983112867007866320617277787293361937495007376963606375430400580528992342290066483880849891750017487939833449303684541284870672830705114346306838758768424271646294446891371441047792279042366089038799439876304017862929103724155461963821611789382836499365021573793727648496731147248640526812877926542238491490562190749915327049957253566597692665999848882358882696822186579415576286019746906714975468254596741590686373587686834268649619663825215906866763297800010291358635460280523384567946049176063473973465762080193832485431308340482456107717634303398868882999217084253162528199691139975725818357250713377038745271510695023707910798290668458186897927708646918214399578490675371412077803791387218380332806391014300044169894449740229309665285815423559467895727161544644780708254141584394369401020648884853228355473945494670500726916898852414840132149232886319494980103748669745693066767498126636659374770366894302144003757835794185270622839666178919493545226141075867704949273324300403153753619553612386085820853959953986903543090250555736804682768132750254356124912602238346722733214385947806550858118213270817069332754888970970957144946279263749932076325314887312616995564399828092859235462671149665903242717230872722834962913647997527865094644454319412500175867089446919349145747254866245401233537495455219871324455466814306868075559482574288011316845628514276496193296087749121903526521230282476026548081159839173997050032121731940735992668434399360789233199931206335925070049517528642393110508298517288351795167265754836499759006004376894064831570515781345217657949436257674065231817140923374239318472162656967604355676269049178023889258874500915598129093694948506043383593518129354025119268261140963779110725311202437031055484710766747059313912241134813650291276503956224149774022942301787559023765551358463307505478985970111659317645475974567632938444208612185219329199635495908393961312388007372667020520986213810155712309128821500122045777884361355458813454361042041440363004272326728600921830312516936137059004911325059712819721330493245122857452931463219465721352984640014559404710113849441218207729647771566312909059385495787841457479142956067589837736158352777364142563488850117765528604499171856697763050025854349990448329187577203080935815270629171756459673800361426339103323167913372587102223358235528920423535188284699133744008217564905382838268667642226369456774738681521971721257339198388599947832545712891037490292537758153360634471712473918795357154154596915343674166161778619402960673262974631649976800777818561977570543428392621955110236921781569226239368006812651205276713407625381109304340192954036376896336511966232521590556558664955984373064536125594631822968642063197350835989490041979089548347466276128406724848176443421216569987650353866736362374485629198660124914024157030596237198888408221522137070567082342312818829702032823299136258405719403771329874217337650115981057117607865251899649052487624884217902505092283307502535810283479890540602562177028228766482940215309352343151216701570770882591623604421310961196643268887629427553956365488348737786083953649137290888656239208089413439837598899621521478423054697014956113218421798594857764061166969359429474801708977053540698363082100930202990735727005492999308277711724447163418872315461403101797983634830240183798795980532612502901069550362771488851805391432332254685659517883032679225316150651433596887262240377601113646586445447518505395661661773153783061566630699948324251782471779406624715406979754110843230380541332629575167348032131905324343276118339524163300262690702476779789104716201372975663041671888113107365616478991088509268639322286665531822219604244152364361394790225199182104884726220986008165427254195570314383540739806670774073383839420496261670588988133136383317712065515257405736095949987571634407287147951186346520146993698339860041389101751685292837627810253427969780112303742998313402306886002847017362909556112670434266525942510334412970855584875724865046852768797746118277563497882127905128430123072318232042477201115961503768452860559504678199356149772073397650615331325748660434413816494092706941605878374703615657967732434336724752977293965232039966895772829209698828717311620832092303199845681433280444984743362746185933939878088705295770497707827913581612739639220621346824093860606735982078441003644894668344933456637490881728751279101470575614218798876110046572975099704340970661397510652086928175668291829683885488911549984590845660780192116192271310737406141187784844930267696653946004726127785557527763388133141261603258223576653212150555513079570107003280733817831599736073355200053854425752999878686784371349798572713126145628164372841226739451477978933498764200525977484683698508565016309408541554105630567449525774514056289076754085502010901276357362485353261990367349838682248686641005232504884564620675141355896950722808858860463474690425984402011440715711539516110588267718910871838116340915063363657711613469221438223579026670277178612980319289133899302576036940104795697372176774868648358539182129741757377059725793266246948243993560141815795225530801772960990683869483671417534977405529400980038892509906736440071463235484030658049379498752183308566341516129708124159020170190353489554761820190956336763683530707550253964689386519839933232091776378618490894000057599542351189525260435517940101054368208833757374938722938075511477159669264771522650325306195686591425140033377271927621861149847586994753224049759375758037326137097264968550934999502426295400089906859807575923643581972493996852635044008284847481154969185108627784850605947651019907963245013378692003990255440638776528527261553600478452416361309037366524216684122427413100938179860584197969176840753403764481505318986143456853648229232298438536589632357091480211000243658356987604841270389550298549633490424768555464977305273371814623007069831335123099641682996979211881890829671523183698720133467961793193076036655971160597176248187135979655686253396756670258251283242450779979600948280333339041191856692751959028057917838071936606458354985649499448608856407443280877895694500328568675551211821998539061784782156319426711152393127691154186316501586023021529281472089998032690536191965195983415190943176234502943554387381812347266076927785450456561720279165871869465097947184686898504958363377810252156766614504385756961672191111691368103349902459809465848131562833497978007748974429977939632819402765250450500335531784027149934215219976548082933867853140704099277489310734120092184573065655296505136517407142959786152143695573988072339786454537723710215346959749368673755363718607788562279482093711166459482193917055817351500519116550565532581659390721757984094013041905029479347438813362427000757420753944606801496877411656036319806707138750691539227551301204068675968669150786109274577331188753551456289558731221175046116499373229389603166963455336211207676738221193273212010331835513807615293604594107007742218792726026556158619847701508307528149025725541388118019586107733768665401725554686716819184322239629782285260506707162290232056349324589617416974487400466092079451562271403712654703967762445112943418851510005903580543980621296868233107835624712332425760384869722842530855019954282627624898048438954055999054517171315053588891495782535742797985379003669575717289553242610438985697092652848211736626198460140917189308926246942466828001512943837861092123752941487292166532518533237443028365806745101734781329824618156696702052736558874510750266869859529961668925417022088403038985190314940009226900834805280832900756582455432611436245966044371249373415524503687197194681939077442309507195750077457590735522893019352600077198785507441638250639482964089279018639177909038859033131703420906192342759138290762849681086972461301804925125509584671819697838222692944447559268175360497269676626302757915040945086386439925778828934933875147638594623190759288898980650763023837884361245705817256815707551737350785471524083551459569268951382829182037763121369802758238148188028221192802941463291675503191131091053162908513927959639148668065283808155645967099684362036711916339586617135820169634676715460909694282541526122803135810971114876202084306332812482997452621407103454366215638649017776156579840496207282975666812401411500956999191449073579722212285303282418793324969758826753965323973645336690906402806932647509253101613458516284577916496208325906284634629951169278700415147461072677443350023493508558633068036330324981987641562504219570261999968346119812902444717159257446449406106364904167715111826366604334436514860261896165858073442247807751562712634197115645465022632849284942847598654263495688138600764768566443291583711003430820108058071849712176943090148143877471320778470122233405685244633314232831208129375191572618501053395525658967180028415481925719879456431457265470022370751853158805479358177786744403303572279924762115606634991383940477347103216905497150091442439678656972347642658194646402917157966812585682373408613263799743095266722975431361622377212534897150443719702414896406504202972034558613425294075119820763841618600067231087498381282706678797091515598364248661909840550404693499282560161092680212271339191355004884701790048495068823297056415095058597478192226106701634849017518667868850765328327189439565717123768768369759837600202696612771488676654080944084762234282440276204076864927407957440403232522693234976557525900377400734404242458090920469199663562590116519794670721500032374285073581289038904487557746524528066481144295432107640443290933692092252775733861092624880628046398494993801972047316848948089238428100521334009866799386353061666400039167629918439148966680936299719193379833122049100918482435106579965974605288825971752956108801810833155994968927474994366064239957323987333113865269020149928071059024985420560437801882553054487330987400774388003057985713044801130402564107452587860514342220941939171864984413138917610396234872664861781548729911903740540667670154446134674673808507976978543308667729069777677643137970674575252294642328863358967658247077933904665043714903040778246136252838368310861785461432071365990169926791246013668731146615837475172463359949517503645715762598977538112969711909256510553640443074911557276644281163523825726726123692811197097327501367881719976847291659103983004645316170728686582490144815161795593135814694725492445600562724609088534843582714612300162027523918440632783554194591191548417661155832074474702953176385108933826561949234674218190648305184835584688783277554605205848504252196727766513803435558816627517092335225389099970730948234096360834487970237025575043369224800880250649006457268039055860583364614944928926527385214203260463309655676815848141839999736534561028780102144043326280277246624455853000099711631593982203903842936528068956008338732275506315649636647527289298072311848559083816684211868429229393091432676358495366802909184879949717900771044757849337829383622717960044304716479024243728782056097614261102342611525616492829766915007139977508665310794667080812766393633626528689740962211917113019035685456065229100428662272296264488859005223609443386163520745279594986801906489687690966725960791364011820843480184959928168331931563336568934765942402636509816371361193368696621636530438722797791117024942880173090947522442525736526175464238354478753878658192834328519201300598529899260997730298207046502032357676887486873704514660304951288677063143651134091626154791675679277548051541369123457808007316305673428757292539441819540320221958595175625373384956831895211761957202818958079839708790202714348048450463088274382953467150669899671130028222586008491474840999637973180148732220256389635104758497415393743223516672767451743805527527986535357066556867202237025068366541755309147362267823100574182231040460711399037888402424851357304798093571726038506358653376836744283134511770284247096465552794177889497959869034714941469507732786039700496614742832527559411406936984785340322213823770496855447695507096791743071331595722124600310642298456882180360900385888699393763677002435039817774025296326672432673395679946868130284979217188798704662318152298961705987589804227933119050738583015534377914478127013484988253177126474794374671586976312807142094589044376223641283089951918836128856460919648552924061338936508995468444090434395184290579436478144289293025203357329128064499777446019162706864842616386290637176438141860745930469897324026419114228328832683276493914778528817709360040535930005167187363902988308404121127356094995153387614850967174805885435305104615616605629170618471669358205790186749465307258578614719765045599620278706608871713638205828441284321284616450548429951102025944700506682667001346564202465007494167626182484346308789403110917293659325735123687155734468794438022651094002059784576789443591365653204576910800306528131809854351807716740652956651499095482069962300926168513876020011602671724511013503038328640455973380101117130881354514850766242089605997746768373225225866963990778036723736559793314162258549911679754355764571408141054449142805438244292923125662926415342444414187568042456561719890136722577273112753761759294967917706280388335292558108936808451962976565358505537743519940232587821541114727243314489580741574211381587608023526399239018326486072349455808732210161572056411045415584713864615633202021662442600699808834091952642285783313739376931884700962586820895572333317781452429409788976704984128198298947043509909887393968157590061533324919379452158370898213034792997945599768265488390419664356104740764627098792318821224334710490440298645027313851398249291692271800957760963664175120400770281307739800321695197481537873531816098690882091499613597093115961555658594518868500137211582102305379543399851468959278166910637337467475485759113258018293940642984392352129333600364710575184197464181616899979078277002706606575624600398450684371936422896275380552265043552018617255341526898641802014632393523647997458784133890139526564353442885933715459326867225388297530783162220006272660211472976208019345034277911754783701292318916048584583003282130321972608965015810947771866231188430110006241012030848544660547077290755403208434856602453502723716062294324409566499438744096633801087179029116528849219086293515961384832044209240636231391219891945420639967648353719977731097186950637182420687791149174296429676012803446655111192357841470775559780674171584699787168188889546554136034441441124824817424734741191256528165005125558762847666949067908988291837615191182872651142389088457845008749610233065798184202432018722356129440126932250107669311718138479640397916334211780946256356002853191486860548387401031112952253543597554099534812507555941215134031110352179989738418780740784915766590823294977212531555658382576744661597504969908353128955905716123347067733849935897308418529967779945512226168299901291680815351207933803277532104141986813092790471366146088592380821778189683725382038957224125949222364153719561526825950711366040383107387943645490379133058495627221808186597087289971521062283983359742980705930326670263851067649304481659473335224748272270129762799096549182244327730841456738217404593282249325862383820487382894857169043459802659507950392724599124274203119961824101176076378715295338311679606792616217964952685133446516025892886865800172806731774987107978638141757710029261246868669446212877333307779850043336458767799472599843824891577228652520626208527283984149163833909324720565234297179856694065381527569124572993490706229996926018366139958361442209768257047974988524865726413902339871069461815064685247387241686851592113842853261927049948566507237937984543087572626764270459296547420936495918393840733468000463100794711165604795752709219097924733458574750963724389459585657894616630277261889699652972466042327325215818442590979700247429852250388052119782738842442626339193460730684234928969544804885578854865213260303694868385289566739233310534038148808138725543602968374514765511673592967940750603809728274838921188760899811245457052212139803965725308929882391831892023646557291179287611130064458476834864292521227931160176889681423508832909032012344844916464533653704179662685760330947860336134312932238939399250444195653921390420192090878723675526700486718622350955107989301827433391492908575764151218956135342268738755939813110381193511163662334332219736806273356093016524153152315040882170207264275956081124807860382380373157242277659746692754944454883089230691255545756479510167978242014080201245231929012943442900866296322100554105022203101340872009812064012897793791114363798356268367038943679914858211089562087320822937979160082753506245702067470482580339164386055610085650113591935144778152279960602700931099149054603154656639234785706644493754088418201732839220049956320067759632028479203062300857213046559298873832771296154055962406303913827317643516593059781474234766585323478881501669683757299504295364936274519167833818432668070383206184438881451241235082906169704082174015153609645904996916994197450065780967821623608133027475901713313897091824538594622503359513412816977338950510892367747311260121896023829781639161014135926605798377414836280994437833114600330894483706992871247581352579344262752350823228074805437825150842474114655445386072554839824435815400156609308715324813328593012211449021698910107509424103832329376477834807748081637122461484670526994143032115825845206422483946785752678418526749463006460455089613907517565764185463582422503889857935139270445358468957600446492650021877140860842108320217829750417850084408798353914194202460801097101896308767032657808241350492202535910469751624226144176377746639419132521005443363560794759623975281710581501635414872694459068816553508668304728296805214379948210069880999091371382784174557992993937150738763370259281453090716867499091042047684651883120622510187930438565977681727279489947284538445473992450483039890877913109482258157978001827953724275090033765529693333395725481562334618289455985079138181388729514383073138367888821641171172595331835173653621237065631670707147902851281482175745143757958303766185576794398015471181729143575776409708690235388750601492769595677370741415223968409039630448767319823614376354720421903032052437972914429251159563583791655048736471031055205032780950258620261931156233801050959189671184416295052975401032552359338930718615352931398840957448565586213323000989667512642266344140681538159383588628012722683427821981911397159630774612789522325555652883440900755690235860324489360948796989170929847126427855781308420830961591154984730585342282941769371345988825235150121154620597646634547361543526440996778740444811864174640694140248285936945237087624140614626629620326895081581871194110195623382014713495331884144330740505834188032909092017621305958337578108960898132212704680176570251270866130636614117579706179850532775898729359462805770511545366513611804133731043637529120821139574138001594517785003903566521383004816097074700647933914617911110019615839746188273269685026719421609087221612360907942935853588615455302470587969370610719690141575875561952216631990589311079354189396078670866764147160421605454983250744459181446723162297077848242651979286001517831205025772841102925650574407236356279081476319411090927705483859818477202206452151825968960691992789211737952430912953866362519883481678784159416645823190372220456410071331116931670595788712588718306064456183345735405821150438202679633388278713291356978071127408867157843018349292786351306104847910595364225922527095113641972371100132506021610313724904128862368548604274890920767173449377254686521643980372933299216005114088238876111580031269698899813095631731986956615456970945545637194931071561473771401350911789274123522239938100275061574098141690595980186847129813398764553332570820787087933757176693654191525501025811596370990271764830338001440962982799377447315362970146168021590815879032691318456798225965266826008399834904768991035569178309841779311941684332211076763425044799063676586233492575880627215258812470487725613275371023300677605313136973550008783048511659543302199759914741011133413066788755676533633951270430467937905369252772157387041767913587828015558372303497771202452655072230384221287374103287520144866964531000741511043032369815756935104493686416873675393990525187219757996459319177557602946165386508421306317653477108344914777890007147034203038979402684968412720613346259224742539732638254048659551526329219156634249114517235003708963658463817905835295081746617609605724388226823754180970030428574509658714105087557194461817096311642398261856281911594163465391311709111667884366019435740946715710394939738310126886791870611614712825115257515560799777662359877815744753948048837492349591274902836452270486777744705474271395009553959984183920980126520852774845977596749255909275252731262937681956561109579303218025250752344865791526746966310072994149186652907236691735280081927165934407690517557709079541049222227163504380284593826028721695276185060404740261698258149622494437361732452674509810931082704921552847556565516656906209964409164036839131930042854429573777547852829353042262469018795235740809505382305256262143477789025215438199637490661456443106676852320375005130684590958567422406381105763887728607968687463935481206283082326993024921225002595181935902271376951031671021175050893453352977736370874959803907004213354524644004050751502972466175054652988787170199872985743527106335597506012689267868253314107514563546434230351888417843283744913429970694871395146709468293832959394811421751647025138054546204315248353180064323301278195190981633673056900442668211866713780395983179224476027833073968354980153031446501671289375359806451752069767057899444453826756263086091802288570442772053280409916490983548161578334306465772103827285939869496193240011410346307396187684336172852330575215417043830932102537871346778534540488487761795444463496023915450972156315858540481135863741575229954847594178623405451184564705226980729340803264433304486590286254353819744417608539841678357823523183165828353581460413023709036659755167296337734333950944597034753216640805646900282610593272607510284484154693487024526442146811982905147754719172444419736752032905878833293057791204979916588529503757934360936735280543426474771067956711892539629530349049106880476754663719979626366363748165479684594496756629657670548520544249134239120156522220331438642768748593416307264781208540456957440867977650002298114408128653667499480049847057258042320897042302918249328749660289788475274515450949818130082512699994671650689016881939575605775829749022777821188805203508683172465385857371943056092763726944834572001778981737112842383532051816822001189179284751373527271092464287548188347329639205638987637964533128166275590299693269615299426765699548178139500989925011096047079657489832847269098316087272026463502969340011711119105473866589978913382435275516255915172466159424712997345519090532225959969101532013087715062092517368512855927026511061228160280122047161289599422045014803760851703029342245388618164675076678558021249327482620484569647332481394635901097672468074247024904027899591020160266964351889895335650260384920849258157230536963389543984378019221397834240305884635342789211011199308276483477113766237927518143226570537381279179503124178523558768170175031371716765750632668433090890175660328759736786587735794313841156155381700754767031804286746313307550387948035549189887342365806063645362793489278639234808051852459274645393539942206468393024910319369281576539030841773440578936054143746483584716804908077162591104716863085420037290874128488134696295293082301157538424290563439354684609177112757906161837785780099953077988499367475930721347323439760402927522276793996897483108863820765033234093042804246527556434131611001384753070010822904364350404118276232014870046051618942955189180091790462504819349139504321949077825865013504697895815042552986672754111527327101576791580428812881165971587699794417239963718895873858464505468873390976825594813014384343583713864878353097692707651152921424912761368103413090496726177159565336532227059804977300821005837453077808560831717196412381110457953530673856434170298781828319335385110686443112545760623839752730474638468965191837679952926171217874914826374938279981988166568811023004426731682569220857549017813585710052348733393755299684622075893306289512811170041547214375885298913776876704807431651804491038759512585845570909348336423857367307584770172749294198048814416030711465585923762321928943730520704242089470368364569391530418702468425994502367225949373218547587496360104241533312233370197855881940407544758939660281578471325838451698043292700163253922742550424661109218368920266076017475662431104228912953910017659843740766349615535347011474296647387791277859547621833171785083090910000471154059142372578475613578688871750351929579657171948272164056738506897814297125752727776782712167802607516595217997992762076326960848334022181683076761714151952308141213269580059941231339151083534702480751085466174067169770869157775128831205593128506922956540851296953366805832995186738787064182880174659819062498468808256179089335507581063583667112588888204332732243458438649455045844720255964765582917235631457916701335786002971040202269793240243863237251708435985112683209215599045116260590433960894042583106375342941475120041346057958262878276201731828773994531614459520635394093197224989881171781961295769222503426147256391320852400117401644614440183896684191547124706097481914467363078144294017432385323159607498966514683947220989521389515148580838810438066249002143260848707250612814036795199227160684276846417786442858859028527873193184831982967627102816901076792183650635900196387107738246241343346644622105601746184744842374711044410939983106574326334296426342186376567798844469040985941628745359274617188073764111840686969514622003570679480991043550998698767621929923687876491119023720461510754520329095466304805553880196255556465187471017098837241391378655845639676348789751166279569462836415229958129223956092557927836706785062668968118797748636855267514675432767543800694501245086351150941781669962402932189296374781603352941541949879915894467743608278714872991812302187988968734735014972494120139368078096622303584963143119047485476970472984043382960942385668884053352519038122672870174210008401774084455089263823649489024005365828388337519864362680880388374489591027159063739443187112535584384283909519778725793037064182597865588644284183762567291793803384631689205328463114532064499310698055773906790960950703895060752296196056680683289619776974168438289148956410814812715844643563898149212253203507904581901120363672658729783332654401880089720404508744552057808898492111717560069446720797008499736640496600025459785338188423352515178921875076416730605976570135477188586260403906363971145590563890249139948333968504949869562761703301301564688720879993100920035781523989333637408764863845690011045770140161862549560968402816429011228034509476217634269993099876151014504449891913730760967704285832951642173375626732006467578314646216624421812590711187672658870800451653669159405600271810699871798972566734056455817603412246776782138068983303998198930385728141116514293805419020251226517859268275270679709543996250123503035769826417216749840935055468223114054745035765959904959645330893637097454898160739355526401657288550598069719340976223811409326704830440243768072872688584910013979758578451487480490820645474478420454520447417087251388653929170979124363578185122496561632962068112414234610563109061925361573526314498328599178707751719099330489827940509045982846052576159842208860932205029421715009792606644882820187391192698140784748029656902237063866340606924290878329261236311459709853541522048800328299142519876728845886995735824120863621825965049233839352179143639376468637342349723490430781557099552907998472008529250512614190365810612097973176258146378859400227760776336466288546406481259298983363722923790693135428705168126521316467023071493476940268067378274527287639579436765030584144937009495700067332636698412526541702944166783675621931542398219321106841469290948518961753944310653959596450199619546842906221272842741554619754078656938468960646978193425485290546194557150767557464432733846810333737380084272834064263558924513796294401033388428043947431489918015215804143768693876509058621068243772864479498392687010378267860204374737360828189000552569209241716435546873289524902708673305589700057450419037886268154579462429003371991181353107799438295619125119600866275745777310524089297188241942127295174083891996339533081815148127421932917739122677080522100003038331103490781752782325644958962485906125347197266558248961925572533141920751161349169176670917507905642593889825501026100263677584865214428751346036161912062256328662391299339185532019871084338423659171527977185708385359467653821087852071006726064318639576502551717892788743961145660707107958267723989005753228418778023867168566933450804071678949679374452878534589339432999201423206494994635089406203158888277270067409170729908132145384746490926003133434978113279690035879980126913461803479355320941667010068690571286209857655982811752697487118674251775303499180014128756558854152418694775250540161905837521335380589222316810812015460324682292551473481981985114760099332041270295638666995859699430287604439530614065493508168644995825103907716089015749835946060401359356338939120689105993742439808555930773579125558283541095255784797569968276723876737243677588325066787958993955212779048740290683027656081734993089089438988817180333856758661032843087842412300300783803125702270611600524247621573947879366901762444003593079570256394465921434219916581223357854260159705463015695358137257048829260309962351363291709991759707271697444975971910873708106119295368491750074540157491098005914570159533384475617101475635092792223441314180589589762038107060347645955580227556519071736935365159359971478106858567413922742102861634671352096235665228847584027674094014917732606092045241347756249116769221672026170053996978287440310636030080643410806241491090714588864349004076127369097380074281025218568696991444136990684665812108242059271710016924246386795128298318991874512893849700700516696471051849417399989067588283876429988426221658907967972784536660707381771503691558184832656607897889562510211064921618026092909859204038160396115088728414290693792688726069571681580827933647165766681123199246231681456540156917177826993594591620826920428767377426861249012239640443501098199508274357729772015820624344935199814758669544569824536482957635043189758484968137232326370119401387609296395437226454256739128594142973938517566433343692854212470058349679590173481208620010734014883704209738849009877468727794561387290308610493851924990374303110954124945279657403811371991065347632900467454548207277087558320841882929093351914245260451647947535025938592483789066010877457247261691010516414704557476759126955766237770024893143936530557114179064130298881320645833409518373989027201146883969698142347184133983094033127563961361838818133629249622094371110595132517227252157306164971771622624618833961817699235565330803623972225567689214812888029896081785807071387776140730693423122848537996068081894623682537732640338778911870770646139023207529599225217830733616641649907162104044127024782308508684344725985511222047452709561298373916406236851300756629191492992960379415519589619399409132382084595109651657111969070888409159856920353094877867180904609911711311940925863347377545552555008276256746048822088231096018208612096736007362327288696163409039772891777988648638833079752720441891214716829904324727323603876670550626464921711203826720399817597942431284135835433092151858457820584527239038937515188527452084227235518486193391417419213787462863271025577552334867420002058273264891622242672004350765606196383074231427990762536353458458353484661312457365038283884813322475167712641760309483635702457502092407919354087397603766009601808560409118641161078777147849457448660036824920603257269891114025461656226366353715788836883712399305316410547368563772831622945999385880052842650596558759089658384476577088105973842432280242499333973028440578072841554508602581760372647777203646428926952794843147887259724410148880318141167186537969818355353906705776098040580667510399628154490949192808931764692865517932421085808289697757915917721620686072182854524582789974031885225973840130970246793186100070104642421400238448034419249185937767849064848336174896955915305569261541324516487873313076566708967018728713913142820922257577187463457324604728116931096416474840158453464388564135295370986497063590018140377852978573045580024328066076654809381622938477511715468246877701272581814520884436570022326461777008810963744056836355609519759512419262982675576213066421969324530312519349197777036455641281073557663445548902041578832095134723603502721251342923725902849093985789335400943136093426042113403449040714256802165931440657379815640365177238677291553443633052491659086707851062210032914958201439921322328096361304172471504199176129445148522490056739917194999067929177357807134939877797759301977044915707939423324861095983521106361453287870998928343656150483432749610575929264978383298106479622926582157770423125364041451283586891560747916808158167657907450672433164788946896878410430679513764616284621860895147518544775588380583835047122862469803416254035190405125866418448854832699665183343276973828013991485600292557688690660094772052368197011578808671932254971299294525935462711786926925382334949550383887681349394577086846265518778179219542857390056937323092203863676835674915234684809332458582607617729173647507690225700843448441470292110675980767987603979008229863948230340717157156387328403189962253052338310449941234191444195976972470602747906269186153883663990274111506197993354464074218706281791200772716212652249203711414343908248717742500459397959856647176157925413087029989563066227559041552979073891153055043611236689203901503395433511494261412496419530556037973565984289687356247604631170325848763096646017948124316121773549801886448786043101392560577991315997347518072912764865578924968760740948866152188768358012144492344890377885951369955968014677809965358006432224233386349942931410851467950162166953817531622127311628844945452767491889783681060960407215924515289257239980288820734084902529114383581054854092663363079032837144433613491286939415518001211844803109129228468977198380379604674964130210445706289721157265912230197251787877562190062010867181509972112167192321564818003706204765375804261941667143692438375874791867889018827160684339260104038677761151774264549774424881128230754725572373892065296567893373311185860626240824404513521433946566732903954536755474084683628403774947465292187527833153335103398926416504380507016071691803393085388893180690399244581813804529113246002799817067210278604126570399400238563884444984379469523137344876671370288377984450041896464818383034328980852929797556962996761339281518403776353040924584055646447962589140223253485203305652187422545891140314556762314587957933551110946342200873467060412820021036443788330831563327996193222865902059298457633494802251177367517856881047238066166763985073740008848575094225212509521081614758139495047695461476602325840092180646049993805666730176382355015389214340662094642884572937742135355544050803641753330373935045504041028584693991252084057369540406211992559110878204542834819952749023365163473981735894801106464093981736220821885736574524557225524519804998462681714161741306686141488599385832757586446688882150686993638571448892714690587925089922317152095380550417894082606396064015502673251541003535667984674057940171423188678168385182293937590798483664781021234998560287562080945998542323063982246083208192403669075937104758624985959495934172330827322750627583669579347758339548246562788011210587025725081624246270469368790240949813727409751455158918054784725400436439372935148180037003178497862852432172265785706634058166150976835126311110484552199545512399038137294625715153082487184339993398825068223528037266795370933469430144298455590878251672396663030872035862486652139052791533872146289951939952035281805768629554677128857565748722930056051589986581863428754718556746999338635493545174385420751468109080227285916950967594202829271360307989219822596419891486204473064989363198457222636144833706513730636796509290683013250131908286679044890564176628534944485314527245814220213366087828584001578793530058766174094895678726981999609590713027730045058427818847952054747957467878314384141849375474072006104356872303575317245994749825084729579922503162984307511402864940287387282622409927407222771620429052753693259383868951844156306770276179074567344979156717014858844579020428993951013111441126300860733339206566727903551000421216013415279247611724111316269585476642515646880012636850140487939595538737750004305916716277833455453508686947102304494680071061366625815132593943454089764076322205268691414494389928284808580594310184722433921044911152718304904516606427653997494033398655030163704295998119748554017729962765453446919793899841798160982116162175032574996886459044051655455743448757959140396908576949654705184397345936132465483032176491533409056140206384466794306103354541025788626350934249400746423445796962318060872782710295267665952672241531845054926134729309269688349264544804181671777324906325633891520718942706011050397549446646532463154572771335141098562446624668297694980977356185368187681408856058975676807847231245340059691633015116906914162271349988282475997788422457331888783008680805856508678090478471677155047475092432813698754550958979524158692392323044886560878337569629655101218187750081238268278719807460093728508798297866020404569981461059727144102474051702457647347307854556623781970798672703089001938617876566228975533659039296393534949772476268552196839487656510218317472510748136119884538207858741926067624469590030436920441603326967415707383357197566241929749795063244549582018370478986162927640889786903116137170437956981756867581309941994640708866963306462304370987456119893283513435977737052645329884743086151673559522774447078983162638280534105507920703885649002681946243093526064175673359623047729042279323702131557920990559564282985955918885022644996792664849266493953961643937324491136415074708613244682804270751940501757007045580856450914518728393637036581300478029405145574023693056660423373140279087609299270219158941924029550082671417081518026336943408673997287746191194517143628095085917362437564421481166778563494271542760681308760550571002959271423214245189715570034884835515627016332862182935287174449045815828037446435280459724743668753986651613433595796724115772744414226652485965572990918209754898720033338263751808597383790134389679364261693493143282803323175435161438759690847299135360429897689668323996567068444315719656336414402911771245374655634238516756289242705071221005294729100115947632548763894165882120668800072237763179918038458360786758444770170127052596969111996270835646900627757215297190582668188128847945535869281335171447928969580347748025988521501207328194616666726631191725920040744406125371347577294444341762622386879019615403881459555566751593236898940533951967604116657287789202520129592442228214895345675436473099279384470203764102490614999216344010187215350535848497188247616709232838806825560662250962325115234110889104047828692492986028836223081530022167455527883939119041365266174745870873548062594129759381468592855258579974977145495163928548186239316758919773039977633643644511345822850316661579635359284265545644227843738668429985028043775308627296531637139353280307818020844094806805719815608319393803360417985763486377604344183870727185714407176787759019741331801044153096067867319869417055127410465653363840714027925439435630968659077610887511545899765517153731227834469348031048977232636259145277525475127230754170754182110337907675204481826527969775432635875508469740747536788948569104768639250507689906091878717066203472589506103688651113513055941089171096387986948847404449636661348912609414968260154388151531833648594244610747804846010982149592441989738650636742154949860530928622243823948907401036159329396260737277321608539442097514266056564461099714060825501012534113524174330514828690597334542587656431794672444556582190895512986725193832378380309428456911266015557112272156522888597808671075978578528865781238052980294196285873549273416220230813249379022092781314185216532832349257353067652213014159521697656154628645552886479341397969429891954201222139822991906077403530699218141625227859034607650596297581712370383979794423373850298367945819969578021913234435438580994737808858340568919184382853240918483830384889641508030640156713175220689590077132979801012881606007404039578818039947413897676854096020974520043023297723286814146374384325658587526266183927823542657043834364780594495814829085319656953837511752353709876088218554892811844435916828035114469488485859877306478105699221936785405679041415276725866957159158851213557405740877652068764401449730998131154586673388699808654639245806263026948244752714678432122920759961721753608438004865600107606555006316749848416592705885316703861290872267831927528526187337130940992235512358978637341134420388160528045325395340527435492831789347010879969734733336382773896342556624659132191190545653172411592628701361389882143825731649170403937829798744786141425020598202935501616508128687591822988231140634970797390904136921220658135749612429976457435264660424680457196150228561059790855329497573023251329555404729469308723188621276112233831403330860412265241821411041427291328241149859554363299904960163049441397979358187264232462379271317540697770752002432092853371063879184277163251515039075561281690046850243104333783200458597578900473071126545313402429657371193772928555738840234040427126257843947589113085032282611817930154540555769218094412229644584195191654794359716709957777662910026507911557775624201255441487586220395146880508155001656419130248397616813612533734803566990903042835954913756221016305790432859851635025388241651065434270963953201914526936882016448036194205868398231640054927835606546919436323974902865137193307379152878631692186780103823310124382163560787283118733100583679620887969420380070197380817108287695733268588271913406555657132477400468823126247863916925385705398518584497138395501801360433955223382979611114438777093841433026141252881675015779040858317591041500078845163844449774103909350398730969072929208909669175564165898558867632950914090617222520905190413702562033168096593686260400057476848772775452449239015960322845957186054004610547533412292650686397262652988064212140738788778307737187953533940739707769599810393238639162595078184190136018172448283059442126373811677720630582606043425260959919750849427690179705631587058831758874715671482007541229640521196065201029395200372179828695590374015705459992096773633654041617117402998465396671974298407542225293194896759858336657356704094145174631744512261251623363652229828121848763976585326857046221742348957415110201928436704284990340586052936419598920278414012110777238001776234802159030213719706877004071135003167178072741082437058740882918697553929181450414472940028719490283756387370478606598918724344065660714593207617293690166656053969925372211785290078908779753003556334845412466424235368748487766302707464356832868248986674628001954863170385610444442505051134474859952190625181269433192011725884066905161180505102946843534945935513574043261668431043885729925164621864622987516465941393612148098516097637195878637793383792112135554495263095534762488734690707808283687286394979060813390759310374743903471409114755876789089220378576676046472025083238406160248409127234395567507451003946351484176254299204879551479249201370960130286803560083671524949479690352476862064125056947786929543397969655745198261586855890594440748619795811173745873346462133434101285630506924316025843543871866629314481531622518284823893464352660748903027341688157891583326788848278922993861232976116385238553861247486518557154262749643164554376819631525119334381473722145601307211108116006637375787374799895555140941168687953579138497637366045090794467783785112508690744906218927122297740229735584535312598216227667103861920484987856280374223459864837294323596016226439156274488898212525061645327403826327842769910544152652635746161787476891415103785145990651259490601900218370652704155561769645022997649225858745235200162309976379397552980840313989377209257412517956254713669646123808702437224822837159116300437228634223951547044083506826893968624340445749441810177344263124763724319249501996760654771353978254228245694646175893840836140779215171944851024288592096270392162508287070740218000769490924129040713607733496327173126155912004189074820684662278763725289413900902724114963717566264089129029346146328879976515475732774677204548831869092589767214619671579426092057478135937905997709341177983452113296228162630567555904632615925202758317849156319229776566490067904449264873382632270306521811742177626364754399663853045438485171045117962909644716912159864419494059119086692183942875698265711911962722581570585204565319084087119679192032846859197753288729658553826194174782266351144460235694686973486935375974600920155845286870845862107514777289983427579757003798493994599211372944253487009515725735293927782310870326166318973649719805700541918113470911721828838988643123982784625589597718585952850270732920287370761973727729335978851217117745935501956631227521177820789108035710495295715769575792088746618067957856647894204051043580514616216959763165706470323357856832192851033953959136814934318182035780736461476088177242671124821645136165381855171709573944361702037235156078509030894584661438886317893020289704457752051368978580641146547276882625656385733730384833130163482618243447730900926718893627383872700538928521253697545240354502627657013559850280296819476375518303556515980423762316345272695133029141436826994081236936010714298693543264632684669612926775825839513879259322553884866945839949890200754770223062353250982795678822961062146800203661471787759715161309850451313368698203374641092204891522830120699218272988905219267691544889569148964447170876138686677429391276286089749618323591570531167990379293179491735646902058008715477654291504182557487981461863147159780258712325065318575012604160516530712651016484494797301158296444654517778743878583222818343314726165193593415724514212150691367658194942707705292354536807881776977804014752263321912356596405393120635551109652163518775785731004570441921982259737118613857210040787646873671690346038212465833482859143164147003129275910954496348481936236501809095844968514015360069040920886611874627865597915865594959947380772215284136522398699821389217580489781704770022431314891166806045303046217767103040841966945267898270713079699160465162626860939928362241992665429880580833924630355408613604532456078185117246810805329308278480518157122388512920692115633782218979974951602976056090105705123385607321488920842523841754932773788684356707314038851895663732108279541012962932842107821385495019455889025000651673978988719219722622822245593500745859527689593560027314572760035130638308558604272295144971340283137778226811442107685285388142372936159148581014043187680049992235647587384947269662584159251445952193527405273517260374670795105376500719147378825027769188563857437096974050813559649871595397516463850557749087887294757181058546444359522150866548768926126809415497201171331054744648489483699124752981075030780874659096911795955944827426882974533326197247080337949529942313843543507296295877926853374886897686124882109924952590847950076268124153987146930621701767928703602390520156656100412154836552070534352518517923816936200038172302341081994076633531922618694813742523917860493773642555000862682434213963940865426256382555146663311515018150845384430722238819514786583001581839748009260386889444665293901118243531857443012970279317224270070608084665490212854368437159934829658862811669403937140330019564132727916325562152525506210282497681814801298906037358828953407759101875025408403547921141761872256685219764772748007953181750811794973641728991849486856113721051510265681558946985318932648955814866134917274106013909829761167423738985550126959248230380796812366638485198776224019036849116331395923197922802096426425768871643086479974971122589172256432949931629714962950010686421053006934932871875329300684244884944025764178112183834931254274123996304552809645094371926555748079040904922526882829883950532567086081400664105538225121760363652652642449366674138910624844864966338400433782907736653272880814503058409540556684437068461685984625736041421304263429519000486856215386354588867165419269807243428186801793442409351416292033783387959535975688255754972355236767157968570926854808818111158666835564638592133778938795622437425906268958612673799610786269262530168989929009066344475663708082966542565771569885405979415506905346554199206464003067882357799697880071317167557649545269125888789981780025857654318076994891626108826734810590851186002970553937708620596208854030816831421066977875964611024056913245525256829426821070913606738676748409339157678559320361375383365695874121525720230870447637543760309984111918201387154053272610113074679683059533869761725366122867230381583774312355044554170192740867130764954616244768175746438615469999802876874969936790785546859046274681642166198711283553388869078952038509277271949834873169803614913086267075151742163577673978335262793880386869287870865248228673057339113828640576354785700112504485340133294799200769266066696413281499819874058539862934212439972007282540682906973022343878664776855181469512314684284997164217822202137323773074136458689966901714893705350824137875506378129501955518189501524837485757148398269265215387774365015552902152428089186217058759054974101053410886847491470269433176100137123706933349791505741291275959349621612056803699756906980136392883110948257889700098873450044439053852792215763370169763350528544831544871145215678528809890366107585921716146471945147707865901955076323964399722328042730263410461929121859381814583528165037039038109469904339888063436992822634781286522113713239908636877352621403572835232385068409011264985971388320227986349807385751499343695360389021730315799823534604116340685791375999576418263209032050941118295082525203618995503123035389902002574197161849539716755323023649899222837064247979722596399648108149970703217879336238296462440434537532632645942591809467754193853002112407444074091467572909134633348647426340404545267492628173542525592798319744139695377610150871464104580250675241955592042722231558941478140549526251370431687600555296165176498798877774848068780157666229110700481686766105894135096990118323615967797776118734571102271005088792084213037372518382739125345938839009344350815068211110602298695654970578218083006122741420259400296829341651120098062802332715723427025264697089338700703167492097812284751899359203980630827295469171675977830682210985924084467247424017033633790657927901890847625190965632526778550480641959805511098536322965728753841904569032606841876556226720899358891046481287575856944825877019701104495569935049626332788596314544365168385194937623124748600427436936905361865266539426034271811873868062193321628693925214905667016814590070401727427608255542826934028876943932825274315306406566536863770463473146715018619565444606617209765534394408752640428339738036965030415068319622530839402949248468160553110283926959037992850077702450021184867105398714489737634751720729281291808812478831655504262297243022701150373781760578851332470717851241170871226816195644894545282642136987026024817738985141397253051391795530350756650731408995847738244048091764771258943227733728191315383432438128694103805110235332390406738715561214611707534994006272547760214955700220514982794108802488421813720610295306984788481517605337248415213342913492701052676189673045060336612019699764253009700706135887356108316854477186988201297588831474509878588517219336530046568867255626929489884915870377897318950745452651825479324257023933821203852123665928576285950962725515077124513032137420255183940428821266018683260255387576353765539380557419638718534801984839858424443469617344721202921679296785040449969037736852982992558393636699080111389335188568583970195044117773543192146543017781250795998828080190598582443108704858784071548316856414230073115944960935694319982926545144974386235324966917554676306596108286704896440170393282947579249950426143501325780114100792943834120400885821941733330085616948084310545751069257740918393587652856071100256371359423178959941259935951450961370092182021510872018757559113084930207757465901502695211931900835966053826450475753144539502355443849396087676830651464692877427968607324064844454530735767282668169953241237162697731254035272826343323235659445640847115919392388745162379973847020434308464331421597390145598175464052321172389427929132504689654203944741589177628054774599588774113818771105653240703593215451632023878645726065600913748407673139320059913152017712641674266482667809654139295435657784088806182137197438509375320606622088486376134810691107088545829756585355387509680016936794418749012206384455641991767628600043387137677935458888144203484910080413137769709146507554211202656471058127626370253126379890428977875320922622098994333896258238167519044526949902960964365093813959321595544921802313813409269608938591412890098815260212466988188779738700115279065837556757368975428602792963439586846206390313135011747329402330958202774369502640416952947569848844623804508247251135830616443823390378019313254854534127482069051280862993385224754770946196693428245234037860239940344052700972074743964654630361172386713308861888083249989419426124442966757985221269247734775751056198689090546653019113510840922846314139933583762514359395155105676159628758637132440508480266860448256799563470736318214986877040156783860821293711580677837466548588752105753411591134630321046387904084508641725259095644831644257423630096868069476054880766063708240365232257078701888227213202412467049208550717609144890884176719817568038307031688923255710124864250499674101201544335175792525547303986653801916333728040203765915993842421403779605486236157441005649461279339218479914431911180557744459303938381869148424389134273314264890184957410334985515856444237298911647128614867524771818402900008195066209787736627886385338596831702728752870301673775792252254183091156751626395955381509179264390183664295576492461269618967692749598854745927018438542778478066764094240222155716078731920403678004370496277260174848443568757519479048018551917432179698274752513637918294775737782779047047928705325342832068852987610880892709643237889178548616990459018962877926026651098499803158193333966934866746677917818832807392583940332287785864080205686214969860333629688498038256236331193229752024341199221168804762619330123164856922577600390759753357191862081035158471963020565446188182786254261258196190227884787100178920772568421085217115562617453957091781334872003100990677917719406644816105628138726498932472282958871055128249687549700032502675161729730370029046285138627339071340102464641366929871193138411970248578082734814371647532277115923064173639711383650848331294823419042284748270294092176129120424273572523812785791930150332565870543171383465543517057036492895146142408204484253039946741408154881995907119557016605812134581642226039178012515287788240500316372110243071036457869145776740249579600620231057735984672767267197529927816717127686693438193553112342185484863971360313904522846527708176239320242762019377714216454394306954330374085803424782886163111538565693815939211790294199107714149500931684025172755188111683589571222087509190455276663341953139907069690467713662987158924181452466250011421451989684925121949676480071628528132833270918423832908571189785109472206627259243263205792711236379707991186892114265735509817146249791878471413371370314876942972561457199974815002077854686287853462485937404528587717505415166905437920223625907243119459522555749224740409274624544833086142042205713287222651922008775707938488797452057777674504517694995309063452305513778195802226848115168307006490135093456429013497741299309170871278230173600394180416258951609341452422849955818870594173611719422533354342096431881407870813473830931853884619725191049397516090179983312820601854628947802167708728848472147862461397955996547770091421614792383441284513845901405192810156699349605023625717795188219352288209608859608983609849195287718982319501632993630910373804505358192999710598193953195599788698461887810726229492401583813846546782927554197489877944235190916010860092443486542073769029546883775170517424538452481785477540549103978011469520383699902330970151118383925276025651007375983751243924683664029271281706611501558269728812236381020387775377989659889415409843110381227175388544053347330221597399220523750353936962669672471678008825990095625586730913654029561731386860401107956470970194956479728202865893754276113259298150316075651435232227457854051244968938688749974666403485440124042706540077477098219311920543903323946621308373763753404881351685512827389613477073872244017062972998478621024552450072540802044468888348343124735073095167708779151852554890904292688701804406371869046113839930814296531519694761901083628321657930206700734886661457258287150241437856987609166423021176988124272481768157050715189321958884616842291915939439464833161563531604400749690209460276021527907831859183056933197265291382040030647437618068368500382381080083628660060515260913533327436620042750726547458707126074321836903327161765254143333808597983567898527878179724238329448226224664626854830449293617733711358021963313539423337051354536063623289400601874629938341770110986953664668608181274659072986130256019607003929367539443012860808556398864483412071907739472480103565386847066967395070645084929820914527929098480572899349121003692110634593434052205857666190781287315255722205968899670378123322847714271216970825733264901949087908942746292321068622736295155987942923483137411792104250308276867399438210431047435071025022017068719545457546226499337872819632438979998779877595503770318267596561978615307273263944381099501286365007425466915350480713370605924625236171067798212111121173661723585526560899903843663930048223466107204958036637131507003327429780373293015534519504514477106968766986553494519632629199323645461505574525495669410870794986695711796907642461172762588367533814799911433905136136055818561545873558021155461356316692028839388716329206347175137972510167410933695309437830210661271733362038002146213845295804745116123154165896088538839842493005595908362262783043825354585432102633473308609001236527623618111415147968719660645503891442532805842949554956788693020084098759873711780514463654422438459890485608242629003757433356821564492131486475328181594387139277606572788192687226641035145287383198724560499251138613544920715216641554720639840695726304055780015411576918570661349107953016900082514986899754051685898679396560660464863975446367718267604271428650140694572856853286505390971381273800562581363802890531346463468929031906111490091033020226276312753349717625838888661534408898733629826573495913179059222208161307877088346987400667949800654733545887496357807775015485943963628245184047964013075353091301351841160154789162852101810561252562961862127619524002235334803787295840013647472779918124830250922668043993689602329358962019130342252617747241454042398787672241662624788542900963009241953274025852871781943763062552732843059309658443182470399643509948139384959541790122176587999682044360414230978543622107963301443385145272935515674950102863687230448525161074200023023912367539581749552160293010444199863332820861645779559463729091623546286590668502173647751342783461378829593707920731604728707739437118142155366002676113798749006528693017097353162502101269728202233395991632080206758355062686971850504940075015647069535312307372674633598543890085368664995116440647805346129790774515536138191891527707886386297291832277124281524379564514432207573284885871193884564351198417384128802824804888916160398963091112012556411895674358080825325791966915579159074395162559482946432375341456862545479065776782334597471476065139563833181330610726618855730504390244610525154357345848449643388893125919854721120133106664428336424763589826959573144487541992849986559615109393983409262917135854534679941775907961115550426028311316336785386999740474343920058851955832221616480596387467491156795672759905797944806348875179285215200509609979634512971061293525363455187507550739998665522639724000609237113178606432036395311315590232810757949143824265197381259255275724209176189808469480863904039171357756750810310611470967968283738900764824613044617583907439080661659290738681394814065345486036344356233089257434566681310283625424262734159050636202367834919778983480995507230616980807405065042058338478682527957271674014499912539350671009411617263324754174356048796077665229382420187151488076343937756076721519963886969048073530982234702914480603610684019846404283449602717697481358624476117497484854289320865634091179930947278131142772564297188265490925343664188371287121882421765149431055337047743174790845614468593615793357693513517945205317080442214467193168698032815834360698235893380485043175385252978483025036056506336470729058481491988932924918240313807665521456965872524913685914094356825493461967497337079936762843866014310860706568509888753128745277390305294056575940441028665418821448473405691334855970273853610950731612727860033205027236022828057161828872646126323106968890163237995081819987721473237057043013609938741619885579960410425240293597084373676376830815832157839911120525563886741945753135095654848626115837829847083112761668793450092812111369625909291683750330733910488379809910279691631553993477128748200921096620130528905396095661009702725127871792312856268288882979776374083782079278745682494615793661478283445643299142748364760225972567608331493303163733673780267919484448620608318031694141731801994178405308215577016756417603501591505995694395595386305925223482477969398992545830183108580936809838656307915368191928161492482811211712905698814422153431788265805814200674867150051016675410882032626949643700857018612866324879966439132066129101809210249368754922996929218773280578917286906065737448050236339719082435323508218113779993278918674226112109385976948258391788152119592239353701174822386579725064647707631103985354570127666256759595586978660328305137093131243940768276177646209114087367265324945743527074686922573632707078387507282565535576051255321438391834012271245798355695562994698460729642280779592001031835360191603439577542412032622536020587228797542362411254062410304855547306109106092543565092456330398469797747532963137193007743645062822356724574329559643295044532584257480259467519734135943883594464256475469117281500470106571135598063571590615831309578360296281919252983005017981691694776272233349813391974806418948282707257093780728602530769010257042650984903394933791776641681603525367592674770853867616746282350743845878407214329926563477905565671155552088070667661471910295618900612696322858146008300230517257110965487516634029138790524970383142776691015956728557061850371739586826448304261925828235567973478064963577009244649399717300508170590060084943775463287825408687677882177082376005281791248748852705554557644773243105032463369967962725530754542264290344005036887212045463259147290600050234372080975111011877660052543383491557442932599229232132525839600662853508124383020220753643700017921417174120530022528078720465802185040032665751167457365490258766245331994672834103849963651741361754849618710100323434404864739222346290495551722424316032328613293228916935160503440895394287138115167871033135267365046184841758517157823037106475009758043100704925452552196572212650647244776029049145124045527440747943706050588891705933404856793755574802807783105238334917091724472953971069148599528861533653538280685169042352117154759474749818361964721229615789945550908491973542483082496364771758132287393710339035976089816043775805663591063698911461394681447458484375602243766653886233667911666906489188101591892871559508024480804454162034749808475741638438203091773536628788075237314616617301814952139144162124495753038648167027829307152943256554302162345500198958475301518723194788887566480417022709602183789475311053071619447265737774368359827614206174003234463486160806580172106384566352462748118927669670287613793973829115973300563447757281178652571352158699348154276968209719268619085959598179846137922430344383722899700844329051901347256290267364141959359732885218770103590221162525430955467080531432454968379549545503524870421012161291412122144300162617027552330417441818632619972217656856704101567673187867788680323165677895896484813036865336154749737784233152690371163819892885246596256873045601435476751012047381088373391779529021127411888621253325045205126990445933641184520972607838130725565718234074083397191011486714643432764612848421196582105934627622126693004047446435159816473534591125423607470379105470698402510751474788511412340526874021233817345282791293724549489869515241809422803834029758825441204935859679159450833639508125337356701821090739222452497033419053262099725742249707971941592185841933913461566731698225107331136483005737788182973459637287247061983823862556165890066410513659483240941720136442312851419765878834349698673943591099158382546394011528031822625837588949450143722845723891517484630384499427445672796451160566557197039311890048668229516103779375301589249848002138125261626958267121882991127916010332807142135599630335105744272241569381446727183696883735880980958599625721343223738783325497645288330065753654783983714737821430345460637814102576513308508060977054142052909626293189740577034933710621395979390341595271848234308366906640612280973312623596247413619057584170339789980435177215876613425988045277124513882068087088360871749999337298983221379266696175644079029310598264085557527773747093432725726934903080834107104336524386784506017197817678517179491801947135423056246035992636818899371758348095993649106379243193796663832109156815682275507000757988641612269354631706182758353042093485273712351862947018541488987310766928805375783884911395576879169378279655455650825254518375018515847420005071717474009057740926349542943633071143691347836927877120603662874074787994469479065898008883253043227197319929022740128043578286893111375146884733243591554186806924442993567080473867388251244807178850736564975827553366586775209844223507843831669925051988499209493475375323671579257265799962094201395417625656688075728130986031859050470934531553487297276351855696643122191020068117832025580448396102420859778682255347919863830703569746412158387006830818437536086363935452757298911089202471529879267819421360323308106478043543359328250310961772873018997708707607582495783347564366210281656265423836968933229428547159299943347846249491366912046956199235564437009810874621540687110430058576109625395036288580123802024680605830130972112728423540920227062690918323101715733214632829073331632728833558405155739095084830127248352376838831856386204748559078554863571936980814156855820346540613762357349384662615047310576502771338681830081137415926718997828330879651504780973523329811710012598681787286470012252573241052042302347095392190092253318617280762246298248447960267227518830714638894684319563820460922593488967522633578515551507191388979364913315672230219446590853484651421071164151558784678781590574111832590402492981820387387152474465313145188912065703173546476430398737577284289104253064712587139822337224493814366474900440922603006003567996128002901741421844738827816238564012616678992383291021411154646349675668687745382589326347528910462436779030793506777645831512693115865624490186206879737555795469871290829710298425743889557635785082561513999908064583439448195199323341909113476510555734230100116080703477935414434567577790991484615969921357349048698403777921812470508934657973923955703280789845953124871734963637611161555053504182333243391328982268685087334227356817935977319299155380773474983853320709718978536443054584607404835375225293349054821684464662797715824637108897178513722244715268101601371887416009281758488019044642076211315182252445592426921667148780342544332677125775685663386256427352924732207229186262418852907924381405077694214674137811182649442886237259060821926064606640083340195798845511124056490905287292416174907245764697427981716389897069157922628279848804359648958177338378511419480155905136176783315330618452445501706606584774351429686642758951788884872851199846753602004480786605547161950186507302050068926667149634391397963828428915407155736055087019939195711061578163262885678624713904357490904991622763266551616916942026472991016505195817305324461931248171885963362096058275957808509835130639767548719573851832003444358806432894000134342869018139448165372382249818422374290179509915045036083519483838762904633899308380913585586465261043985270625679549103936522025378220712787661688103062669562842153450301422339257317844560091377420001459279814078889308500323490090285979029469722359729317021231148733972570445972034212572741877253757216634816453793368791363222266854068284542305408002893814026761285895194571690445485379665882117621412211324743698430972347377539989045861970729897034042823770824384996092274518697198325454335462211271949982429612835505658317109699332106543945842695804292413540027458639378547165474554467505059176951973625062943053792828616716536881904244602659782127445562091928139067161649104061346778314672470937552211165230089851321624717116394183142217583002812458901014324923381771340442599091135631619716052757657994647084899083224203553190928318353416119695985423807298279051553815840227889545238770222512767956776740826437052425720148080808024377904218396144818352191527419470688924942350256776702088646406237697971735293265493127471242379378111089722707422951547457430346122903575502608978864275957479543059163857489662630779068794488989063193702245890722275686779928392365062052743309466368897154482651969971632229640805788971548382961102038517375538844078113165867901683842421512172222926302376218303459717407016468605994926326105037510791023298195048179491899788932392450140573194401494375884907011019731245679452614976145036248040986188399386681494226724403229013817563012234871554426107770746478820075895201823262295433334944229733737903287350501427241973661751830113039495535986532648163605058588813169635066316189563876817515566509808887256897676515233726274928461112493104729215348663448035426795943259107022238551304008421102946446913830150706170930568201841869726401194681502199439848142395433452903315897131911811499021346280338194372102872422293233120713336060171799959981752221573326396429184427450860070991725617834360400884540486230554971316198328922219069947630003261798361658024051690946235419500530315252388383970551624274436493444315917102669678893125979748125091545707253781967403349267298952988115393391180586403599214977348982277967225754566171530318169308705694481661962279046476708637119218330757899822005051690132201382289150796151306173422243891823018316637358494829127045330424912569751253338511253558674246698287013497085501660565215313351586777988360337527166144159129419405643945248880267544135332315338307160613855776477280573395470667165345127257901570341356042913324564766512876061974534105624413270078616838612276297062621718440999827079163751379978401203226492849756991028107045315539625679021018334490863856749677177522392051237017448545540717650438566403290719748386201012353248922472508893361647245633037960056938927122125803055835849938985557639587451701575126132931224072815892469425860562595227688503694043140215534567927507406485621676432948854011065747373301440155676949109852799709016538912709764582032090907134682966941185597089121623048674750327074108124624125750851811120040216789637627772377449967075303500975789428229680670438182482888904552445997450673104544893940474774637728402812244119735626902497167376177418099250170999617276213397930607477870091883446445732750841245881238345454460684529766005559381633744209111943955675137601826024725832270514141159654954060015142835892973215375096423460726386696853293312445832710198882433809613769618290749051125769844951998333049330662174310730889112093804111835716316240086096128032273225441684571181729032996825267414745151486089090916354158534330307878411675595164778887380383021314594230996147599044120165581330403602831548634370330568223271765789628797395363860593548323583331882612147129813735600616908651468073849132620890798096300813174920096046951992304979278225659103255912341403952525305347268908744004573298807743542044396397111254662603188834859467035018281647616068306435936294920871467866531337627751802213253080917527762953628725696074053892257526985491174470655207553923190611276316475113524118784801441678601585237041394175424770854396608318961284076573534342205857089662802049799261961776655149865526107890357963871028480715564527482006030718954044848511825044641598534815829977073776415285570777988647305810969892715804925669324738814313699374898196943083061708299690390117880862220499277946861513905883198375347302674201530659127833680296826267965349912397687413287911899761833092798889015562161418490996996810138592250143993519396514431666143557813844280301615050464659229386443942070473889854683954667609083470522055945462348647868074555273273906758245378810612844567568504071592852975498830253349988692993547030609746621229236236833880665055313801668436000233799159427890149825391539208895790864033974497168515034795597546660857177684498293149009051378529981491557078197343536019819256017209991531376459311400935209821583231097401429983720581667921986286807315421320115495517393220755774262456803162543896155182158698209780572642995106245555698762906427463898003995696734945197847601298005219728546766206135541502963593327271020587599507242945856707081317992708805481976062691859591492374282384877219068406310311526123337674591539446474858609112473920493443878070457673629926488720373776784862140271917801620579769765797510548971680466105665800483223179374921935221579264116170022370002364677530045769563129201692341649415124894269180542530648227568804868050658433562827087561729780340414698815550712881765600955156711242919731678127463174158426518352636474608850116955741206367776990943644041486553535665681268999860253043758111477239480221458497117554558648482575877810060508808460976533808770816461754306197431964194720740122951988580082062505438696567696023447102420667716789309362173025837350997902857363825133819325354445926611075764141626245227267599362981059605720177959918753370419763040925396498597686339309304287928118873327703081276603327853894868976134136035628678331728201283249269281821309247964999688209067589054583964283237527558480859704296303171283038139464138167396906770476073119872479859933021244746592099277063078736649402454391531355613591157461254341732975389063804924398547283010477333925878134234609895786858385729077934436386334906121583665746848914482410458477039385626664222558468521317449782818484664608716463268228258132935562645180809785954726851140548514093858023735889435141128470735533180352858491744312210134479588606284801289600760103875345225537904570494082237539370191349663627754506627822194727786508113314767230055832081463679381788698112001740466624224794782099163260802289148594562777689792627853190335996169684347312414160787759745061293194303807936949855221674865001288625350930978356930513533946641132182983401207623014841592906598475872738716557634006173191237408295931746863358761025892714735758127038409833283909236652936650816941775248778125241829577354170915639858790674360930359637056024921801616910639179121920185106340661351668841112008061467881118098295895820958656811693503593063790866244029543392902093821507436317943086426385515795649825469058456102269575610616815191464825842419045963448093981556623929578216224432178723420374112622203382894192411795618304121610687768869190845057410532424895236480022687022810268534783382158278919218750580726939244208262693232607111190759067374170530895171206935202925356966089146217032304320659926874501295490669839115466265575930120707210004204871367301159073682046492893761808311366549798154051754767346526821802574414770791406071758578745706427574128053304461863539695796316466803454212997541386944761788458527135971400282473990806971404904214397022231590828270351516364107365704518268714877374580846676212099429682751593441071692009873858337699989922855691674299984037985457117495318518711534653674953233871664388375666614719937762141242349291099130922558021692982861951823772916675158677741671877406405432289976905704723414583135077659252454066490963969726807976243986294615707622856890989800120197062299720715731377151298637667610303046064893959269346291784515251385754394999664364973388680855971337213302466980765724292850134450835971331097773269979038658698710000814690517923551097688562994295512729526983517411469181664451328644740517494238636827733503989334828887279385271635196889353655721185436151443622489776306633162626151391006227286348189780011416872176038096751735279559284979989983161157084956567637089001856479192478841818570588946642253779663813877666893930679962093530853761356026617045262848701430132550268667348238432416463926581751480516410596091816013784603280959517830339163428637762328332518344971572689238082395562652965908208259073108062041657103427776205155496256528859746976222539591747494840549816377352628086260369381531108062898001617094115048531889091818912245430619945000918418006605987000334369555214684479194873086869179055242281306231300218366708343957865643921571820652384010039594709767597807873060725251184895906029895033660625744577659024999559290093237504967174728504910383839042901898579117486354045753451809158455837518873921542820647900643035998918094093738117576449149269911408954963147700837849582933928711867120903835544267691690225964227498412254264099541196466617107162523785671815158331114467772063933549372458987087699638071274395935864643383837827486144818079093118666577754212776443839355691963960086017182452879391453644863381862307923424712172543618565464318427738746611608489533587627050613098061320792596921415792277351950818457695488132788683093906338115167935625434507202374775874505797793443412329584151839940364121761308815112505893823700107120119393414781887892329363931518156655671669910723603850695798993528750698875375260683795663097319094554892382583020941772919145887100126989622315316058935294995454762297121878166311818522886369704875393681972126713007896434953832879984283092194582871726169876317162955084227949521105320531706273656138894815235686842713677847858398750599971837257447311470629419908929052892561797166547609411457363172917873033963191323913160547049852026294457671176629968546978440811798057366838782756062570785746887355686088975694842822053610802966834870155212583367854530269083799433023960340985410764261562015125057204655183668739976811113274390593498543795085307379683837767103921836339245573997983627286873559017124838552343641901808715803370859551380452152926147102914990300814076526629071973636892434633554582597538208438199333844953826347474125628246972252599441436669328738884534839004044812691894816898634286232036904342074746858495405145009559382715796111902684415378191665693478011764293884793471393498155268891214854121849517160319882854364846693797024196337478022868166392957320436005960145949252618164217577701277699660823695444227575794237358256122780077160740812547776290644974581860891152628766404597188064004198590771050188450424386789706282941289272207902921093121668213301599205699794020091849967175666233995803505190344628856193596301276590820298796545192089512395216402410705777967548612653384163721187942721174309977468731378085413400825563029491949753065518636164642418033998517195357791728717907099541640171211723422845439541959160686724792354694252951641910517339947075383733700949273914178964623438787968781757922208569918611092050486723538361901309569288430015029087898175656260267183279738384499470387272894578779399400177842015151031433533242274934778745482252184132441674184718194491718349461657067194676166664460837978611996611410551949135517177786924144368996229186749441772937308128465299778304218009603718986808903422932962090038694505162765994511482942569417360854608016443972290516415550015613111326720480337546405438257141066664192840382931747100260699068843843436212951009574872324075463512908439010026441839937367097325983291915439880591165155524950777952538769644369303083762102253523718548485269273269242504261167078002899088043741032082898312957088702110589344077570843785112519179106564697882752738758889615929595457180982854454964418930270442554461159397196835124132190359292422273240451627793905224612051570181537892745457859686758279058301574981645823136601166237230609070740362678881442475135778139092800508578071024283141270680226509974365033585902239018126457111973729325773411736153649941631153959010643461947367318607945593900541721800942059150534044678730320090495532968060863011244805505293498681202093515768526557361526400930008238353133132841260711742871737778597706078297589818202368456478539758426059606820559790948118567608639408070435833438322957267270865262027425088423859089338679493328840263419376237433956142085732634884405970261571327241625129899372656024256725440895365283027249711487356802702771206190224180646090263136174273771805345267513954325725081920197114690847130038223430690365690586519102525417969129812407318559182861707509796815839045554208501998796935966568125530088391935122588069653258322060556491323945990857826067760023075986275248088935126826276875797538328225879201344684519722868466034546958780910231503010137602025803250049614860754449415421371390811811287055467259543446426700121429561868027556906903598999701546284801310458776266670828410479952307504807808851870559087916624496473938653195664761624415166147348514727454528561595966702619206923427428657584104244087664569806903933979554124043008607315005672752201325115717080428809521191920115553491086977984104212143835777567370502296096874474092517051755932943681193016374085093225977853137749043567452423220210755952045069143665723239062595255000759330591507178241805985048889082132827737143159908268830068061323813025242812545185358806490537795938604245272500876136987283210286383309332484216567949647402386446086904580851745962815925304658892463468051779004101322316618931041789027813436032083995467175423005178025305916236027781862637856873107334450213103190911536429641649856732882353138678515115613094707227571834334955682589720713861903885753863897314703167535175104842803684952365866526182752613316554187120696044161025555785328578849796271289081958894328625452524139171051641296285903865032158844410668638239586373052349344927657887138175467906426972230018934993974873499290449059278708334487811395720948277627746728623410243065659646513795367509616560963264345624559923436979491165940519323344189440420142483404873693437336879419149406018679572677459711982418205361369695342907903687183482440638454275544560558829484887847043851608555397219752102490955116773573740648497081894797662458753618582836700466294081447035029662837288607429259271297427524989688357764080812576782041785849048143034122902797731816039141719161523254380029798410149177686456275374053145153370334285268679439454620322619669732082587477118285717493843611883420201896152420623694215769758142942334749427965508983808276854664631181292462202808242061191991784243956355798578653578576352764433388635886531539463819362586822197922850749684818527146214525337559139737763111774631178965906798894014374327537622095143633507760359929195250381209201575324685139710113853498633751114642783408780036572032440919232991045848001231664016869513760707099677888570714361267596142719287488370025816831762575500469294795922697827255143833187730953069444835751997506492682381052437484510100371788658068578622100551366440450892306348176774868361048619855470973017830373682211634732288061257680845945247307640145485017750082960102597828047918907159956753538187188366346554588968681445966555465309459066526180109985419775696381234403856616486120425657521629643953439683638143344813806984403932492718542109448638534189057494194824505508439017500981923848611411896105719382502687568754101650554742472387759432102331385501662132920192836909372246685788393566048851743462070738519068344093273640100430270872104410689678348264264344514644249601689048158481737201832537787851920832740961633384181105596078222534792688445858506216418889223922903554657483934354066997521146347183413411614833903382778942607469307589288330227006643256590953381150087154576952824404983827638118226675689207563347588922872416579372437992598560369160300823387662604684290104804296281827135399519698624019998045741297531235214143418160765274729104864300799680282287494412468276425669722964527514472617491957364381268139768181151856564895587505809283118880521945142828583632753335161974626348412980644837460532109340040411298678044131990503475856170365922624707767787431094363043201013246988836404184485044009681234115685562703585616564300991854338230521862170132559182174424654907017205764805204438342417905890812290803990635652164973264192188548138899412540906016216287203705132746914288282714779009918743315241325667512085982572301016933514450670336315118106817796220078560499670890086923744261414656585346276392970621073334861978159747794974977553928061668756918966727414011545237457593890374032118120112471649700969997105702541360279774953688658624310592802925366798841295982758019466656802647454068700354933759636640471736591726674821649609055600312293689624910943890721152254603153926700017491024286065299129812913625181690447365426527665180012953293498352453930842461238073185875967454180841023732465943349934482215082163238782105763238520822296385027648755649304520527914375713835770865488688652915543268356157851825589017324694590504939450732181971144659761847269161065533355813915790214507003139058010959711707793191955053273736077746389292254959718661239412349254627531707853029529276381361395548833939084663578362096320218042100791444466135631770131873241225877241413324684259248565493503759892287682450284785694714993021035490488863412801730993934773970051304499274332117975207004613348646118509733713199850899613165407154245866516570341023729555619165505531593910548460467584433769510421793138203539584031347962158776065088191821340112947686610176315393718975624272619529298761387197602330814264062186578243926160682187172777817703230226706569959102054785214456273116824847949603133699754508296640456292409308174848928281811522595964691283008816176746422987585414111871104123128797163048343580147982758084779739734427580641697380261007455442013398155115237315909543615821667852394359644014479477609565010513266969605355829129158407452061876310924071799978434547409947726926838082234958142987769368653556445975278319983838259728464128688477469916632930315265003137879031150704107256651207530115858108973097984365361071488258965406847555711453790877823290346187098430257294460228283790037953154827308156118745935604536213226377200542935330262149912493929988632143058034197047209218492087005927577171256951401573738197838440828599478127727699186817317074781374722008309103695682930976441834471508217260933241143335827159015505334284245299434539330341469325647364564203646236073666338344804074687185208978768277479297313554241923321144464006484656347668581442861432358385077805229736121559030303807180429912468415152129339822705036230120992958673761669597426851452221126063191438664846699974931663765540586306456017078883920838362671707506093148866305054476445642885233365146877156137372444945564559717475774486193972180986326135064378307465827101466323345858975395842947608593180223067866125827988398045848550001555474287651485952887318278169482959089314055641845910762772636146501217826614862881014136899678759215250604361041803349107991032160728467481282459162269507576624216543161278951530991482391631654412561402001848550195533422577450590002033339847491384337310701188579717503488648107412507154715792716287636159884097429218420082019063953708780614139563414743456240832605614444966558405233908755633372123388717876095182426308147445860738531346015869705390694776432545581299455507544364226472829551842209286351411530137397372268375617645928161461909501888223145702476356620519267353186857863282450762380667547482042180879387655829688478194189018414467750380181377086534665941593975664604424389209475720512116684730681620719464253296965145806911956147386633836781984342504082013704487433799141667206985026964093434663512844501553945350848829041234694079508661446704849545447017052675061509975421196107261369985864232703331928894613938775655672109332107990643040648949184273943333850570339909374033727284649494044040830761010718613212615963160125958472296483655821353626475057057687568551823420389808812855936054600963048085433646201043561445472843531424919108244278889313070551276207561941382295832490783636706884826184118043478691549863641011000652838756645612968029542382782220442671709038790322862924959592852397439230716321163549345865159744854251724677818634458514714925535646914317066923945803470451290318158770767965038244041592134536213267022147279928124889498242770013535148495326195154602175516710620274069492648975784068076440148301697240515178642243676326727545665522843084191483719423929773908212248067511717802589431580559390241080096916584075027261944856121368495620491633196334253726608944234742900905778186288116309687153329307793402603876900080307472349679618845976770847238052131354858160121307914606728918291067390938841882926072975337043370575188546447326296240550814307203754915233166559148264941230819022176467020515667375715880353909862316180583390708513136559519584922205031364930999172594775788655014923943375966981416545472516631619140739130550968041559587019083182802672802543838987045394138289045580973600830637589457599021494565230164995354998975590161881534269238395615749333306643741461156856072931610059636086337046865961752401794379178247307545204138502046531254488108570778789582173622904541902017576387529750128226323889778849118455381294052711130245212310629039537893788963091018630733203042011447560482452225780280559794546672225188312064234242254481119702698731933117126920451721915893319480680279701619854598336185642994858403535511973247964351500426792421214484847062559641831788143779010288244246534975989726010278081556063046131680740740504694303985839373400724636352072153275123745669342083610749766901049453098151492327367241633683021960296425326041142939188506538327565233225836251319797005596583219250875258634670216825428238356344302512538167659072307237031761627861828378950707880077729074666293809921007651852246400102753276744919242962407710728435090053230105037574699791867961738826311297141330910175770893482391351505375235576761523250480006894057765812804632604785616061394906007228829815877634328483188979444442804698737431365079564188999455438753087443102527940113748361340867945266643621370739144644811240758855941924131494884031599769512956319883961457352131872159139482541601292964462373935223099467091019644647277813431070257357346004419883317823008821099289947666308100509566103515313253249181496762307909652627499620636158416968340925827301552795433999909921498615479096069204607705503550269669394358684672543067495818949780689006971714229377496535492620466506547766273401047458425690649946503473387617996685560734066265545147296252551521296442210292130825916014990031913110691683258908618032685051880081263604843248729842940161258100909940580852230564447095619465694999529428227256127480464650428032934062341895144704411643772371477868664928555944416426980614427222347645622952654688473570426297510131147611219082332939141206901243439066607713784784872679423392200637270501165974031914316300315423202523512516514954820439375775839877418863434548006156996960128377593257280455382172144238083420460976346627873086367403158964502048402711055477541015828555454338778964571244961166361055464451647344966659733528138905148497617086155386371469152369630618659386434375559379197262323744415594107452338818047207698464814894274716546366967174666428231032614197986085001759970298495732740771221150722365259623559151655006670715279777801279240962495988985483685943903846499363040257053830046998048421972953838989209119239749635460725127653740758513699511249354312601016648653079902779606195788349631992497361232341028241905527491188413713352817359619167881278850459433814285620803605264329220390707178393574885701712303080796624544926551402113688112481900023543858729207378623679774312402109460662146193992085907994306072438895143270862431824033561900973205771942902956996081479583709070410434430786302329833317629885597074401807661984927639383000921310569072231383042313266945097503891339802692202820895616558150976118557016663930875104495772198283028435453626764970685465308403213734232313476120368096902263473890574805307353865955908814714676964779395075839846461581607528306975332495779605804018268669703723530201666692923298439586033823824133477872980717612616555426142194580623682415145697281815611563401517596049743399131655530423734844483339955127145367519417489916167379241407591438308473936309985562891581332714820207317244502338824676484834616447230050567794170042076160310171840781684428854507815477209575275343966573557516973116965227328781290270340771948704386265826144861951586649289183503384494830042381692426723613322475320360607256375842336724307826723614411450583508907465972260428088765682460018899283283619697838330503377178086468108726915735158014966463434150197459618513438606222357748301753296409180384366279260897959670230492343378233377593652203174017911613288645941348498540407920227554505507171965239333492302200551678939713215177554963824953468760851465461277562615599772723387116132417743571002682670313714323165096666900423274570602953066351718045883519400978265306172491769755313685426958154892795645047476459619977273685063103673280869198813339472431245104942862394460309235874812575203551777877239432866911347993329854119525278541174926579272475596435662511866237178332577128609459721414946441397140060760675202908314754188486170728323916848675011538689547592257973955221437271042811546175288295518321518044252180579028258046694515845847804418858395095089001846344641517090478868306854742833638522867701462694195999738899496029910368915242221867704108453273243105417810220601809507194240900190159238829735446310643183623916591617480001577288175490249789112409782387286440153262392505771807789125578192650180092119125927418890654804126317858356768518503457090276432625697546122837016602668742158996897009505807530986282878847187777222443573275505619158488935378536991358937461631738942783487901728659471861238498742352832144276794488030621349331445647299817330152683564221731094641662841405782479953751534675995767780499805946096948343575378152268929043569031979355306299741438369902464368443003036296557018102291668117344188089615685121560276872112038322621613458449665705884930747342441159358396969040161018164177124577611857058990968740208920245764104575794676630351544167922657168670120763984779950040497149011714774567859079087326805675162107006589855917904464847559276632034688347041472469214086524852497524374962367632616599569135244836615794579134608309826835532033589417385073018554241697591940948323680989146125348288338426115414425585166290935103639495417285342003991284332635759152027651049730095846904038711350120382331843164678615177848229534471949702372352058773262422025749283069825592601360242076317004438369463829993876403080417715868465044955711074967529833244196252164941583873239855501544624839175780535878103378383430178460589186900595023148738347528782672048745902188564829161377662238730878183316276692187745582170006719629204015958896097700808778650520165450374994760256079606317909637392433865773255206178860445027654128893808943413055037364475753741488070686317293366966229625284949779024464723447869203742960377848379077875191315117675342126132799642120238289129108551837450890252449809481640067479588113341600706050474838484578958329997419235984288996626903508464434469288235697023502908558333375899560290858649993672772496458596436174258784284700568395873933022075268333928107258087472763408355218015340565257351747726903034692497202663648731420258582732071129469901390169143928839215920854519715530632855809257760681482107263796828586295159803320080565069608174743375840709911112318544935715287409131534063466848884834694840264312760310559791435217909463218663311524678183571405754026925331502669969371078883113241965518702847131110203183322365354240063785707231968846641078105717276823009012156785398975287176336433952895355911774671875484710462537613145104119580755940333339839652647804663316534831103893940218169582141967237681245254364366720190404659041802241026220868215056404719766375221778059188714559857125385626904263505900449079560724575440704250905606602377136575432335260865206548615205868345385726712369125703188213705840216748085146138944963120426906433284676726221246470042606967672881783136487093149445144670735989556282778842544332342358868763257329889762289545036138316679106897752850419281721391046582130474657253118084286511167121441342009674283084037232453762249666915582551551388465926674936258934477759611126188266745033822390571602640194484396594081495895707271515759913494631467888326690609664079997335901509048162063293131069525793015894988583356298902625706713534989389273134955493392543088601109664726278455572096763298278027444770611354192291807637731945441132652465970328772594330257876698746448493084375937376126142584393076681931943920995382820513296137840287622380059368500566651334541584555726446908926731259902280986410294672035333282023590038790921974083089677919155750636427948783198948782500533063391116184559508708872185136954311581789989348472955408128640878226540149739771306937601906808493265239638657584165632052761335252753802540682364801947054450468386870510199694377548332267236103571566501412460361316749922775862357910159760972647892594272501933659960969508627261334939904586992017139759899420781358860654486650939889838351249680096059146720940821872157433992846766608062995596207742488996931291784014710278323437420250383007808714522877419047008093384412392720942224531742815614921641364779187562621672587412747423117791108197648833956797282044647167928159231649716652073668693780174393190799133164665309375253838346024726183109951912155042188193128784541910939952552151794007891260177563098609730269422536732669078214143545273098729960382231425067762964132711103863413753150897633779109536201589089785447010906817802954362862149643734400667479966823155019735736293234290836489782765146559467855656577507553120831080648728244413956323878241113281605895768657108117563108959915707993505694799945850763099368822524426830229607952433499392374416125508813389358113041773739398064237230634094202714089327629700328736247845348435344294715338733307496021903242465085838301070443568226944405487239851254147034510650463148569788100305742959656889397264144685286711310601607925397380642380454314186049091251884194049829927551683772850290122605061959785781584778305949367983125200149255190065142019490539835548208202427196369822552652423697295760035352120472999158830567034471608727696372186421253351749560757760302544261336641199042613729462585670490675356449348013590164536601083759691312169101251824330223526646167013203608146924445943910300901604108848097339387323205505207342099445527521438928641116555517910821201274260246271931887842765016439778887391651039969451345153834635575664786247180077891261727487707447089379675483973511703393691462446742931363233261843672587963382474415762859956116869042692537958516177132104335667907835331564197525221298088170408687826612932979768445693902209466639793912796652837092848278115790728827468636725076946730292165687184728034496129860470265339343633218980116895644478778743675281866057859368506134362887863353997965400599875848931830615408913449855310425467136067038243178197289068771164434634785111853260605904633950413766152950071770837588974469146657773521888204711773653936523762244526342394453944383464693038961655976379737014225553269231280743679113945470050618697243073979488435875005016020155391031146130653136977666974585617814659848498611274644205469401875153815745064145657565394324247612303322927860846458373703901020869529312694754901935942910272969941735940370626102385007759928708615409281637682469975600349640871471929070378710655152718407631325897121107712306502073009204068910630969862550924434254869187859349339541674127957625960848988542934153098136111647783733729487893993666825778630681786921846196366958194552480340312573297662791408719358623589502177106787429652788887255019886051467312044071473171202037450269644121022126988792253105038056969823172262652256912195869122284437925841410067310692544073869856138649300778475951718462251006916798861315238482776239922753315639164138194573520859745004336654830898190126788106208496427152939110133167787144965501688182751322302243907841027795722587036199533848092992043540615969771285029674503173597662932377613231850047037179439558710012794301319504127275930726962799181074615268314673267479865040479338781422347824733909641162200745565909576266158044134683333783492584370985643543966269550325891721568907096877203920238804570513761458841991907670639958468112712148916580716332368698714998616286425101120471188021098879689825161632522346495873149768406536993997642700808089008024301781277261483963521283879744663527775042762161664255266070127452397890009698357719650294035401559761768629532636698234316474193111534290041815826830227162312875175200426583602761338974085657769417292452682080126721195330104638473544519624799871450324430540715076108466941001927736772127991047683642462985591854203376010372863990988044744746470047465821363696659706355500950397619371835222956835371666105951351656457424009196558680152175705493505355241937336422205694046777056500535313492997461764911904878578515732991753562830393149987626360164173969087950902912323581276896109449037067770248218431771998545056492385414291570416553787840839098915507243023931082020193398454273535121429716010266120708171051271478210435784264784459179544133040243988938153221732026781201343115052619854106914695308092085951390194946055648508631329479735329795690813245918189292157624626117800699887021496339516827499783013781172494017885672718957002307094800001550722907311140873736870187094796391474127552306585143574113939584732100424818957517304885319269761346350579903179644740444221126849031908458638080107418949389825566848599657136062084401299133418689864099488651506171820085463107436054528842369170810355881631518379409913174920467370628181850712889208098470406786444193585157764333753997110873607419236671034778673490265036392321203093506764978357118941481676035562170325249339686726903959849132811350770111828915170986152792839091285795178399556535635848926492779729724504769620694255493690169668980951229478593976936044484134914824584277784665703836588187770178158785102917729894903159780269544694511918309677296794750778855523463352094174620993478798668252762639350481366674100754151039887361232398354079664699242581212692796907938974821843354724507209817365412364823572206289788445987720744700913596314139429974172417683405392315536407462762280088374072332712979591266656538732770010547285181151040625801992327544837742290470127559586974684914131114974558415939679671748547667720589992243622147987341756218853389193652171343210519972849041091728589576610739561012418978831030012729138321797228034323605978585652877419841450371699124966290819759554023188144871774576978325595876456431407712237306940193931342080744911982079828216976556813551383834713857835928181548371645499507949811012113001601350224427337397122300103201547207817633885533627770212705797001708683525733610527112773410067120522095824477223792920146321522858949110774059119925288532004777543175189325828994990784260059316801213972502665156454084501049664744459963931481896682474470298412497092900249907636143335149760361281003804557628207313629131003257455139175365315380800975528167156175917643923513020943827028574281715600693901823151782949875278495970265218021223973450257559710878360538804905708052218502090640619155316419049391554157625825623524472720753804849283144548574702206048627027613645670473526361082734532108388322934845337426265337316428813132941777887799851432346178874265468304955236994044359577165948281911952882053359341328658122682069525599609497397003714374823043946816279063572413629937208962438308200436846659254344911416363175057875271864784220769744418188317754159671096399787680940469903104876847745731196953272920134213363294952311761448618318307390079897635813576760841266167330932489860771740274489803262797088416012739721724567632222716643476715354028264647481726001221340749587015813228535243048669529042584222498372140828026356250294612530603131305674457107055915584827576198213025999277459495444232848658587874270999823542823982607373050700519107036670407651678250139643437252844723256450171675375914959833116113507320438428845448786127462282955464933189324998427009760205229117981847907695924283445778136528115903814568610323661474485446939317993434162610454707943508772821721029043324938397156991459063281389098598222175032371721723546929038272196793593559409189348337931218001047370234038215939746037703283403706328893891108088711895084468988754291955096541826747218164986331413509853746611933696458971901602902065942197465178162511137041297716369217209074917050659689581563988923495227840564284750159390078737345494932654738341850386436974645252531626433093059918527041266338164519646429387457183278933772137148634046984007807832281408437828456005349966290168887942069827090804831387145401507963829454541448702249927296399093291354231781843326517743343039660767186371113907245001968389672807586938856763863377651266809752489108884473165144575461176571051287910687015704454863267984522971335654839978262799257235758215191083942446562329527740051127962337306796511747787490516509069367243653504862027217290361919700309876024259199188036890246372140985299096294141858444689475139207762749969801887934336934007343182249251465210031974627833678418088411059392808078373613744197381304798068507448769219013724509249011413856557576564594196240927770933943958066091456313088132469897240895483778405894419824968831157960221000343961115479457251118179666665509632031619133032362665251280246486595197016232978861975304712050842940855703067468238784950278815560449563389061711591293480944244234848257153216384590069985801184142920891498898877322220909404184474182137815858411827916388192012350352171779900158026847180332676622414971880673453306347481930450683433307737786064442693735471705226145920730838552156274970284379177717407343418055902443576954184725853818183237476346467857525541386411788511075551041657408896084001883902391699328869425002756953024195792650595722162636183928572692163974355140676635769275235722597030965551133498532601076500139814391619605407456334228544848910380179798871099730507213489200415541976803774877008994986648180379155315165283249921609233896656453696207409905271511021763153724593446957467647138541144532365696334593404486977930727430426907168701949453749541446960557258306986228511390191762289104401055122082524432654015392695229236581244510485926433879777212917983582527476719138519438480191052134655398328696766313175581290878882047039320065791703248284326964706119764475270282745494055490792043181082017868181559570379501563765308593027387112915475162466048364425317953017657600383729303818241703065701054485356802629486267623091453137050757270761912810742697813786170511135619936292731829312093396176643530048623456123720923924910589305786977856333938008157334536535219759677484108570187536067489536832885014439524147602062140436148392063186894841007864583910585813099994184018387385863691989297490707016786315843398907406525605087616759783418025615100896563577913954544693344599418347544046629326815670486244584289055527625776405138610907061503478879552354944089022713258086075060619606794828180308236358008290319722011004964586468040970805332173952240949502490479887087908128864900749679735466656306064177985476666089659575264620312854702776087435462914255080569802879688375554025675227011025609469701331651362667921945965539577048482607427784679743785835345803215216350742647083255505385032775640660536477322482295170821835782031320162293811411360986205282333516744736138211779734574841482524138590687378435534452468344700419810654188866816597257299400314065158004165156126086219501428926996189273899335632355640334946622625172678186549318392444480912380446626772500277445694016587073024881334261906110501984031600169097539770416700540875796925550195182341281664055373139842929940112344931970271231104818201106035408680387946646816647757669155946507417363648106389702120493653817155986544153850169717231022822639991520052214229031956651563638925487073208465686307150425070202000189772025125017037127159193221842760179449479964906730935049953091108669448153126074076260219087263645919061132784035158279332563949256775591509769237533467081869727074565676870383670550550543530508643427416205700153063274356067355741733121166677646926691852804146622506263109099035856720016428435973747914634276700592458943194832015240565879217481924113661643748082503607853886384516566674663546202775988880418445887018782801350501545283333009356217807909542535795854187934454257202590945717724352952748079121444499751030143264716922719212752452165900543156045419325056498538896305296562262006070556759090521165397962398869559018035527489445333718820985562484183626394375543704626476140107327835778457647123290109974221225639145414917917185744315817912440217793453870293678448060761489276345743679004437258779145328725826171460615574697855726263265022934791991234439037015362086558289686097024199790429225390125693172568763327666808588739539722386175133753826243812446671111296185629806796654746561547064500014503606806735067639475906526015601903509433050215878566986782298113713652525515973234945785871073747192611997278870655817273101696321822575327766053955170538077898761682393083264158161635196506016477993553374571020906625388881488870561390114937585548775171708752605513184727965740201532259474393177726771231209161736529758052734643979340471310691009623694992371689655669422082184281840432665012936026595533864024842853870232193494092643933837177050441009425178125824657768110510356292091149707195884975449742059297837290141526086854869154221688128162726230234774718823482956904379147357876286664994681313996678501625873325824782556772806914752956223223145462387226444390566234127291237666894776157741844781302800958953938817236953696245173320345630019361612130419077362224586813481332376096449645462857161255855325695477560669784241546329831405212218261191040843281892166935532751210682872544666020199569191671023978049852400932461391458214156734093928537559761296760429459791178885842123931271579514586242352921970923516741514614673957736411723619612111426247777662323094120360318737263431977894504466177866093481236125720734827893873384182872241267678434205632522526387818765679699464139593237696441746564435804122293323471036704652593971774434888273945007405137682201284710136813816745678164664922787010935765017159624271391120753405600201446390571682339650149441763866354946234034899974338820499704610186476433823627428589645217885430476469755010648776858079754551900171723513094317154714224024233479222188810723704247331867842933253076030835719205041658196055837832272347395699480390842851125376160566868777374945882114244681507315249794455443386391177906888287148716104389345491231371074094889691953003219177219387413382148189698537520391271500844892004827614745425530213242519128730822309517552202924314677850779808423325798775904876189070663432407651578356632485675124210175060168340776041250375628889812787472631852205130709167182872146490905871681676718246451003923334326807923662309127240785046870473810404948593037531228731420364406657956905064287819901955350463795478607702526997747616664974819628841004185493182317454905212077368260010722846444634920846152664972881577703163740714975194778504023236049766452289165100466087992202770199695801007083774497415618665300342815855587418721165252424748361280682206785103695019103861692113997035460819720216647418479122654175846192883576301916194372940771720894387495707682895634887506861532291427824098630832157527851467634225832339122018721157512791858958230938518886578173228814172856098155079202835095680423938528103543960381812836991742293808531389044187427805037876428389104747051403981506772067282681652479818657554763215435921871910863261365904208310396333543358742487354071997394968942679813384177538824772736250966135066428293106058226729822540355153327099895648622491765369918115858078496707280001338902356032161894037535200074334197445006232731755301393684348420655567547584407017986465946795843810891193367854487714368919474773788151121531605384423556214920887604955075163134064309040053598770407989476850969696313931521156914045043180102442014433743914397989003936467492884015851476404825861246455556999907018113837503956619611023331108287600091466805134865663320223324743830204609945027681810014614206336385981143330384366387764689252713590107140630931942348136943462436805372602335938937940345286109884477528256066469548120666573407428737532506620215413604667843717546336231705841699921732159068068891440352616993510970505175906258167305169709079726269643031148469214973072731729177225117464569248417434236936794108373686086456965529410747552118798927680160947516904208763112657672435030140271599552751007876612329288181690011941228407697058297587645369354411948383771114374272878039195655549073161886175513148244788088748979249320666248254531849069664434457218278495588912279773792571495985733820835501515489411110306624635377824660832474294235922934989725401787954916806825368033972731724790371017385181286694829819207961395534013973919883691443054386411215558878155475845188355879998859284982602066381866900706580030234000449596908280425444686186475448489444778439522096431986550785997265315744747007299928553758494268440899167021104892934414926744317026480159820334667186050070250664054730734075957815303694708781416620289689685690661297200552423542554847149699416319905559751136473907264789535820662066547654664435496154196779440129777987003085266356307919788880946811498945447879472478446570943190620388068508162543582879337057907308734790347224586142249704795856811115681433877222195925754862779192378278579118946009659730932795059095645029400336323970751729549959694109685100768120706643856214686238805044106194190457413054744945253133494089887478688441861291342570015816067585673899310165912506624186745000994666334707459036930594338079912170860371169145574465888965363347728580068294940139880325102405090984307446018152011198119236077624383863263522489157588088657439979930609036014863386012199633867849988187598756444337692745494894001917531983904251745858140071427475242859253738808316236389842930515946357107149362193431015914081371576042824752104010333111953043455104415591968725093126704758634884729864818175070634521792468581599368327302635951635403767291611528560465178559661986429311553532465996091714349437707405241696726680365535612193467662693856025084438234085614615320408138607775780906684753132616423172514248312889252971447009366485394754911886800580762239959803588983452288903748068186883582132978484752227287866351418747839805521503815023996801939035551198985572897240794724184488580103820364975664896960621138331681216956435415873957626228481510526305100526657174580153348344542755634742637253972416967173345824312224249389656706555123771862897518953931513222442467164094624901033872120278898393209694463853059383770448135125701945627376492023387188425434292061488439677446608589414463908945266354838221889473617442778942663306878068894187253396878031329505440944560716576485089361463507099270233238608536280758802393462544999545446944231909046400120546353417778316334473650908215597642341081130536374494206782307966794512196506553817924572547901578838502567532493164947832951434915295004446023526538848158183526544447893921957760429329805317896188903354127136145555890438778191616034968453077823064210539838813828920890735198753496314247365308277675486157197380157901731428123531994481753955971290717163623643110105609717060227051705073065698877113656992032519534109571398772193991526290395597555731242547441604695635460217842238175823437598024545619258686170315270402278483133889626442468506967141763780061786514797891291321802205103203070336286379213964587180574274944193911252241210540636518504070553357536799465293786157089378849441824427155494560567850760936910913598721450018291511984614900611337702696754296414318376741890528771803097730903581759687913500521033671273781331521654275087092665591874035205633254519871877266216678593911814282310354796256611008970367046658514386094822565821957817681105854689145776067241373336957571625725901424865852791683914215846834550711577696397430177489914034334289594076206693015325884962042890423865809815476114815976082801181751544899474180797328396597782986687877229179912574054247754974667427255545878506093426589968274648725933022235520894760976846079876829362225314389337152878212560090295806205041820027815749447123068891633080403787685887877068697345187284267403905875843291840509582277861784349758097344218192200059599599468918052337670886457288810834603020566417623630785790476863759766408969150250299338882013701246649168376835273322390370161919842927504753439693121741245964211998226761572349690662253806940951400025821214835208150452303664427821010630335219742710922214566867197943042854776703850779675259863020217407127743724958114663510116611141611792980875803525647824600800545625552384927954202954066744233224195619752765285550815737424322556780708441437747826946663275048469034551882831621056953022943215099977958165598241119001132905528608800498983295177546778252158617004174546006132078996003034947423947349794942197616348675366799451953482289865465774244862845576793797637189262341082796283125395084655186855998026830927363498293488997441585801982806309479805630342454425088812779788150284108301134206361732539040587430652218880264501815503812542843758219495866670168647459384610424375922731621411036230170206258872059178666570896546576761178253521997233240838182981127280917577168399486857236014589014757015346357272289504072317107655252536961189540432768413220395226786224756010867994615526790744057998068849579758560522700771904273808461072114623962786161507236896110849492018251062609479670231390505141049708303036757651333208787674265974869241141598569894318091001069788417506598232829083728085627758493331420599930525021145767639914149011672295889456037931590438568248812789614826160863847913387155799893736607259635447200491058946243719076825322321985001846083443265063338002488338567534597734205449747833182783003480849481770767388317327876557132238971886550984108316682776429478204165711355461810317831411744435422448699813445359691509180927109623746161907577845594705001141451163637515472899156746560613217225407870890788464480622770693133016040082363848339718561429112957214102663703053989211104598982751806559864905777056463070102619838873253012475959692946235349585391224167844040836287997980204931242131469222317448849160170725759706856717809751294931735567557593218829742901302745158492326229531720986925111165036295029868739288516683746208435532799674409618525483930849848073817398535575332852987444161280124849307122632620292199666211464449221642090027248986205592528384871552525405991302126843701136082187942328711237819031554716843538981869768807545711054349582945011503722152427550485644893757777278826394270644376126946753500179848163108562890790405026576298356179036634750599687450995524313020588838786886018235356217443523540979117922375676122030689004104394812029312564113633816007977391910708980041717102259943716871200770871119490483160832643842380014624319748654642769868460932326990645349749793252789554010207648531030697556053264221148255746887568743394283689581805646570436649111330933458060122010694034337419518226515904053795392250612340144725867116249824289427492174435174179680900035454667630094900219302230134620133678363264538123562736402360530758481275752756612918375849200299251578459717406966770334600520478125475880289354479479808652037199966548289818850197423690511279039285413807097065933122709890779290343548519028987620501025637587906546565395089592168959344016153301174865486226154275741588258618801216030393883416012990165138838173401285180953505729790524868945386562348500336626711931638067892850774483542188410413650841660128325884220088297915541293589782561329991448358459413254139269338920467060175234719321863077378273197439954453447690031392222128259877469061213584229179510141859031877682989379423421749566467239691981927027923616830446404036977747168739234891813102593576017382997889072473022814745171347201439948113440915269651197081680278587595536201587200329349784745139427785230181998656661533794374938349320897183216184266518870331074385200616951201551694175571877068517399442250859935204213521847885790748049763531010442176469450869377934657800319832298288017540900578716331531136353086197139980657742090813618396701512861142546131292150788330787397215764526360543248791670573758076367649452180270174755435817493705240885305516174118280763150346053262624374759333601197718853040806083338110110415864699037492479233566437839382848082275521427385137598659273261428490396722970010498492249316479356740533910815227770497649916985172827156962200524138520380104306763913779539164497541084548908943176994919668450480218018213888387568763280883132123752108324576948991786875107083846406513069403562760535639771150707655317799643902515972222749324026452176253291091890318700074228138733319633308406333139417826719302582615704699738115039787561445887376531612098332997044394584661607592317902243723414749731575125980395199929503204946793146294116989316266926612297462237435786189443201820696589002160249540869603673721684744760712406161238880793595156813503576685654831581568719367911073315282703139691049526251570677858087083130946826915666161648675785132332717934710701489929317078946465674954150396555013625846913493684025264695475139919405444765045445388547211021846818083260873263877367069592672966070379812907443350231603713520945636787183321638138804530779367679037799119908145458754903588747178660453829568008437553885451908913996366347060371225487593735436756735265357377605783657988400133939302369685931121325052294995920371931091048741107532657075154256912163000279986939608099242035414216311334049989757032112345450469512622444829444092426700262889133543528262683163048678222454375240626018568893090447083340775815819130430941277355414610705518808820386546790056234687714698245549520874663646704314134382401370850409118798076169671485896091817127786181083870050344527042678268454632554926373146874029520996879466393723759484313049783258950735124304933867269843014129912037041416030467497721764129331353179649833312935330086313660121036449660928847594615733025648984830023711698142373795144371638821837846035054075766280684702736533897024591169018259878071009048043963862568422534510672592833092015158733898678125356153010049319826677089595829016205147957650690305174979462867475022049955401866238415295090031243586799837409614866292860164292032015751375841671509033456695967491898389703870666178167722114453441142778270872353489215807562396528122588191602804225369562988763714466358563084001051885025734943943132228372965857244904674852309921241946666159216289071145245059085408282351122112641315708432987949405976768579022360833573675368981616479898783118194862020297526120944553003923675261892840184038008899593150177104815135239060276337784476533019373558455735799227644213658511437115249924295170808418927894008860959440536669455412920097570558681311287253524373217151139564337555244852322819244555407499146663540146397522357499219308558773454379603979121391267787834450817481781354373249309050107537641575689051054519664995152574129705935727388734370889917675775543866760785228978088774279700885495250025024576373681955669923997468747775161874521747431139292751567810672302980277292888628462747906523574776180490159601380124565905442930638513290241992973550030758947270221027673090078513418690111061556392679898714128771233794722657336525561419228694842840894842587537195449958673105887664100716372347781389252451137613307518353236424630854724031514445480169719276867900351184618980978737143338458441285789300162375133984970309794697525680603692000596087238886342015790867078426125080589152422256130301325229385416625549730180270820359354607190402969954703840092408427947913341588171809296923354177821408639013292701723566604171470242002640517913975687346945214491721316166433235101460930546340237081848557338451653244760002556090343028390900360426153649273434206050384535226886552452308260788321824157657017873584845262446731849505274829443827306583804234772202821520039153889754100207227418343565205651830849222595540558283937990243299103703299367197367575495766948416257593435048838421955637202246799080365439919349904760181909130690909227526023937148803898974379751413497397728905173321729275833090944920319732967274334151556044815679933656098499967454605476384591657379045026572947799484917388780829434518444292913778584153053068841874042749487505815956457986493759298166722676232700671863935854657390321342488995439486581440659708072737344327294198040582011058749903209305050126911454121956408090359779841603795778363057192264194770964709091029711181659398741446728627997296497518182617651213977471733161982139495513145464318116908441633921892964033843177467501708243692981894728569940079926422132437473672198263165658537851287046595311835020965615426894942899045518395257152638293876069134655460235248673676003647512261861562673645432261766204486446749655524304921337748134123411641482855534542633059024729182146712451495362042046908339751642630951912800559888312132522043231418585737972195316496244905515542573354807533136814650240779692354336652648151043941834365838105968242122505695645939916427118831324646430341471702386566600271896280819039152518366267441194695326682641577426283964991831083473487620259252226228813788439951831220460275021228161875972474288309236343729216556099020246057751045464703414440831835849632140693278678475093720968806971714940323801854464384999639779372802692379242123542644903199546161469726276630556362350724968884199612302013578317586094614196436529111729631178473180009918734663916340966813593007875306811853420342407890907792525019267665431551873600134173229688196434333255016813004623227947642119903127475162384287736339760106808502979931983779079867204406327053202022152863163782103542397768450541823517721325125583210420809271407479772315565137056290168098189037153911189013164599755776753638839200956985782516966559630675334980038186062814514970756770502780451159667775768903084455812879338735485572331775160881500239177207755104183874715112968375253895090353699667712290922842349362921573559405743658758036334422429563172342391776014660771789389552583095094495018721488824705880975690234556410805519881063962519647613594886631666203679774603587364688432686425177867942716093537022387266166161710945719693507692595633670835040683499953343154933911725550248402863717915385258123722071362111181066354333781960377589626525114722252046278132563595297687752049525678775578073844199754075237952366559403445713248037152150634769709151099456563467886307439659907696205921800349332573663586800813544500093826435891268551029517512168843310014724283776763730434358465281246326037236935940739915805112272992839870906089749095529164932371400120060629543133915644517710507354355939156802571478978981000974134722455891522826556752142590635008637713433304730747825776323222099021793821781590104396107906336423327949255569571948555929014130670262749781940234595538026097163466351223592671078075942909354713963205185153174817885161714341022738682766108531306902589101758850904900549017235250363899719826831493545288187335916893998794647641097463147317503890408891700316171441443695799540114395251953510275017674134997620884845555626409759828048833806542280712404316327182233754884230524220778138930335219721962833945483721167482540416430206358029141713637857236725189089782113507337064941544128811587184518224253385947189072740846728461631956311727757777923639910462968226590271710939371814576112780147498401850730296147674340946089680410815826671468244865308909773346005196894889048490671791005028818077480981095755374849329874649880078199380388788510273697225287028385496814842608263955975975666288348854613023578983730544122646304704106939097007317992905174697208696050764559168653111588439477993310870327302361960526725450966718458594255890048628797521142082042324674529694828606511267662010242826123485427854058697586701936114756136031943588223408733534091294318305456031683428474967923173138352260556230202812721858777920900547560270791409349477203102624040856286721881744079025901949417712985283001768277540843305366252873909831762370845999756332019828734026098885745829259993689073226556768174665575387034962324577770538016863845902782871335167498930888331862037644869077050750973718582989777548644749613777883312449721302305080953062202163533215786988137487337264866600789314997620094949301412019347265328856189596386711068389441069941983051838793417218143171738112677041270963457485653589436092838371905434634503157901558414442132166378669307259341250831540404004914997857496530191412432069463704041805937720614167620695620842788741180558731651454187085935782399728368298654504770009453498000280501886073821717789579338263317918098162684355369047596614313046828067482202745838075853496797425722343800833969960355367793477303859854834282063652322464850863254429194870544355911196101650899427101066588594503390438649410296483130558876134721522419487116864305892519482222995250967723031639537809830707585661168773562476828026563429892913635901060919580431890636829642197199972265031640226048968900247161620179932617464005180789693632829817248377824584866694491541182294204917667195176388176401055811260846602737037525291511962791500918449019767986935147299616574111823093946154099549162939928818406950631088629713859098209572718406977167206573833147864457393965884118392950716820082739001117581994421968554034064856460142969725571183315720848649287928690176876268321280621613551626260229247378520644536793452275901991628283846982260188740426550311176995399158698342823599403126512451450848684368451840290051119440931830976749201655903653800967767307477148606316286683930437782331711851869315673710744086005368516540170236965342707015043371551807196682796377051035979048102673638111550209601521672354682253049545656323259365546882487568224991749918855199367250853137617736048372776711366029438598048475452975467411002630489624821947110787579391310500918251059560218222932266283940032499518015549978732658802571322812656131685703708327714097144146053621547463278578066386092486980559286622748654340409103840210414070695371180301033978760106887855912432344186494798145602099507921430158236694502455409792539772680908010834067880878577539006078009867744050986807658983661706553263032326389571698046570614527269328350248220400473852017415894465619991745502566899858449323149296805896561686893940822812218476048150634729599433577814776185496128053770558476908025820653762633792687529346882308745175357250287857650412959335572040709847306444587134506272637506256678993589910910378673121171411378594731863575016208942686166479451128618603177156884924351918356294958635790309875827112865668596683375566427458762644361571305639411176604712398872383149530321403217496078556747790239724634145454161628869830457515237488271964164328866819014295399500883625794515914901812454503911185744269916777383264662119567896059266235152503554773638742485991940233785298839300345064230775628885683522938863534240977873719037758526754037125305863734577981163657558730155505603531205156375596606450339578718812125963975260246057518032536889078593909664633670350396176676744667031208464292234934786204732949337100084490487698879047242088829882859798553266540798307322475441208008707201134936515851442528068926286135247940407091108345875493093150368355415770865723677472831381042163610666681175671053914634418886864047762656026416544398443870129070014312100456364990399807794267659110516370939456527435472332402677830037000980084041613628231601078593157050254973861280643091751803842674594088031445735344375158847733972661475340149228900887209745426830141431846363263036895698439521168827196237069085580827407474357424641148603675184861437628817681664674751913690506885908385283737212620991559209536182434316145300827065994657646596005457911055955577284352408619262870761037848788139615720307534148701594483748230271186981294730912017187719125763112884016025544693618348123266373081165988886458735892629822141112752905958686369253019336158174470276254033591135445752420569888460495188119257367586674624921933531986118399295522170778776101775997035147557948013310882577106139015665874501108220803926788631463235833812005852501707979689453005767886302662317076768207887022504637385712071607458212040109181960628511765172677691580476698475657766461203647403739703995660992862011027656345154181255201234205249917060003282058575455928892510168448342895785592755625079588304200313731031834321285011557635228727825279046337733837752305232904438409857903099447243635467936372389686284036035064919017190945938729549303846905595539962803411130557264607644542325473580945873780896752945007885525907373356885939608910728499372850706575178884249603716971061090456715073776085827451965383684040092772892249430997138300419365185154959622861242827401089074574146809674873090826505427992042534320901795819701928695491926281252472270980940621910608853186323595248461568415977160491969071430291275902373685836636838589503054660845347644227399569237987952103311666633497466661834751697867921770743411927238570582911873312556277973111041983053407511523031525745782443572373546105983129904458880737037610234630886003027023671318802536866750440626840685733942097806262673941163025102838284348741674019734673013296431321086426288038967085713539869997134800787410906608298463147125173151378223432983133691580981522402622083524552683259412850378892955052198042782525984824542110850196522152913193037868815563499413879599899378216404338327019826534878295263882004692945883515961542288685309127370787514707875955898836935301182775435501269909919764758241743685050301467641537408339979515087822555579946020030843563795167396142556477479391160116723323443026649936614678546965223766498892891917869798618161017674106116592230563248857431681135766911805864711974838846277731886085732953691921879490968843436709549792752394804553762073258338178695848993169515519720981672319022310506068172463487624691275905086557876533772874676396441091352784017488406463105230515103706652915652330153947906357120733151016239946607784431973983219761089966947440707056178806329107934193108616490876691699083503054606484153845457233314850867430950855791980423058917926028613981196810821916152770928065059276478180135755321046685101580500316100150193868289737641226056553055230136045380083904468800279405981784534249453022682792595887731671175375439048908222090516959567027901077318494431846126303250880635207582541416690762874821080342058758492861820790786029384921558420559878083464755851265153803287040698481398080545814151728512351272069246825402010999663340347824306243570159891616838805327415904974225462993722694796520408131949941937794669997711601420561211174685187795374140551912421322247424519031399940241210884317489775343161778512760958907607815320236423720288796400546391192006426928539923598459598961499417250183994029380448347124873472534243731540951858593030906390948498463708269904629446716919100699311119581170650410105361370769454220155958752201409109136351202530680187280995141646303324926171750429705909901097345706804171518951114634612341135838928373053172519622096857205731443218322386356828782341177491986436890610940450704672411286949910836450302983772327422676182419145497992220986927894239330032117660967053343643689135186158042805801774333185265592268716821203851063241321443354787551278083627787809362909997784511426987838609412593582841962670699898287551668906080756703524269645144425127574566352427592057268825866308436625438424705791702383808242398612033651133410275479463109964844892091376207605181837581009875427748761970121936530770443296074217887051642303952339109518669315300872145313659979829513906175608854569213225173592834777431229146857806039880889825452092761995635696923603221673421697795802319460169819923454929908122662505369882640567495734984877415844055701100393072787284387032390327850233167212972338810624296410455371534948239387546901825246143458241786410897858715886813396410492964039595918978840518687318273529658450517122688488976181430396613030392443409630760075114641190651673626781670355055320044954701199423831632818042304343042542784969066281042506523148745444877441963928135649987195071282145757208650858351067296946648092925127191055598031109882973342533848577935282543361958912612896056469125150862693725879355009271808518471755743846862774801912698073671757197341679510381780582728866585136840340840768390883029890576726910131908976873055534818455632468159500880494405826820786958019095120992886047171059478656459779224314405883137596780015100099880316536522769121122297298525101606940579295928373478918374095674572054253996565094829995801877134521258567279303796747860868917813344198890888733804217359417651002043319659916782942237736534603975357356263332972691510034877662279537386607571122251575545264386187934610997085704477078053923592787970580108334907675396631885080319526859099062896542278302876440490363141976691247602435787216042969780605866177753964010972617183071998578143679342832099134698220483790811047126600422110225867839385068738706463246817962594465484025265927483330343534812703020918570895559941111193584423019863901352386530055138547348546695400509667232932109658605243100924121685772775242264454226956773704185647833082209220702157503349825878895192292805917354129548348103938015693924488734210191798484983682262739965426412489740798930918920227756438098954440915596928048851681679990466414863406076632660666317193027310596398709692314892893853571360672551972696890862898533675806211955450106670617548913980817012530639439361877180652420315187625381866735521767077575483522896923023966008516460233081414958276550532636853421165374448766257790159360530482385056617481883941273737362624136349509828931812316237684966908298224546682914702818422720347822344289896366859395071081919696376357963481578507156850338473783145806797558740744268876401163983694105955371774348818059003648679853698958006386381228683183022285286979993659277187120239570849800268458605270374942298972719800378287729911706470047807590182096492835524683152882159412833793767559722109868938324568988144114697970895298063905609319810268372864389367245781424963585293401524171366862672769339363768262409249416962250546921728686556970937395856254420802376271815403797301232157668468425169759224925673119873829936559875848955016645098217162313761192986241815504598539331364435641017425012995991339119390818992059207522433775407426516121626496806569239742644494562293130062032441022527988354776340456742848218616717528234841721921047685585629656188578255232219874980181258409406505526480503651904057501810754708181273031390664153949222918510120661338555109513784568190764418352740201247963049376815372873881164504892739974248406964210673474935617117037163901816524778423337652298214911676450838679412523552830783433765294683293105510257383490164267048732447237414922082619769788128810101956836407251469995256852250702327011090822178764578478224044569592485393389849847320536835039964046023609692408664309138241721712233443313114928321129946568064384309957284883032949370302931889876250116063114638855178055033789425940194285213887305643593301317384438097614959016499205228349522652126999992483724103852496878030674976968859150571507351714291633876294236706736357854807846000950543359443924939585239673674400651498057750902512617561484491609088362166585094039878767682286333321764860093775148294613890938458044832224777469283181918083255497699616884045598642039802255252875708744621399107247886619530228319660527644257011929582542947792377671843490301091903229776990895493783922987809386396714582112545768421531089273850455426423935239960431886893263968579060792082264470092419417602006810488481720339044347581295489958925733764117520429867586071819618559168334550480502349757116435666163733263853642829707305779739409793660124943521173128963901872994269474895292278197950453270556001977629958604195861018405505354884901083152883783187302732448459187010091408391625135160962545231004549782990264207262832197911922344996994951142020642786437592354950521992002596945806155045540252319633116231047826190307508633623645724562731371317062248941483039793076186058412940962091884364347466921994618566171932390011964581418494159228341047935885697380710725406217670566726639082422220416660491260255665527183726632895957342680598593147967623191904831882912579148136210520150913684733848545977975962387325654903778498649047108882266976131426061150263502256938231154113163307931698411609851526024511352232501100208695155620381074454420154927636083554098875106026564711749818740463256567632778907022022157824107467140137010039788357941789633460307282476540304500225716947231987263671960525516604922202720694177293485059961396149269415559739135505168688305452164619235544398879624178287344402319525270281002306623090954833383868675116920505253653043063084810670350262931566358482617687883738560034383398261469316208327325589337520778405235268904544190175794072822255346783967632663586040392951933316482169050413557152810750615630854834979428718934514817292253989925191899274824071536721636183716384948944790673080808787880759822247710453367179497248659046670302863805598709120576530497013989101423565716068000443298349002011899828291566990575886054203749760307763379078500919368983036586940738372540240195106882857807160497196759242885494704078734141652337638204805687560068128427341431472019291555890189317131920787266495767970195259498038917083640566701753921297487298460199438410755832179597530761634648266845594819990322136681579459039661491233071276253763014658190319763023763643347646322464178638105689901550869934366085468065340455020139961619724567467005246655042249700179108492989187861941857669316934658540176582183981500285152203949087415987575174074645948606089196969133296276197006186348078116570255302258754195105420279457973364368550543474559658871183197178041869525921107940199228678192159080936015388581108116853814398306330809439745241826128591958734188103062917457511797139097389167691466400062712068794676821158267863171520392307454687186187154733644277806680817837135044762762201645363660763786078682551075562923387620559624492694488147603340278401319557669716976790977733588590145950660079466828720332640198742575996655918175053272841144721274512059369540576035644597431247729171766871411840040923154699836027870873826370525089669737134345205468280008126898455732167643714461071163551429777735485771371182156178834192247734906721887649869628305475528778501877665168316505308260137164542674178267995469863989186739296339292951460646263264137212024135137975893467693611523499613654727915292978521259250566801115576895653729982513330254256527344619935014262821538266886884622739000839827586979399852136867795867527932108771845867692284734925380280061504492662961690357916640690350439026219479641964090614865761475832891676302726404181668662554869226292564304726851607761182211094614824628727466946588409812614365928098214649565005162389730920000462453787502898742181413273980123244393587054474065236210753835984924098954243321988092230858285968516312574348659806657934704166405133901309348162190448989692425921384252283226977281658434420325223183729721835767032165872400489424334848028210507461825988315637957472440909741232899192700593652249535358854574438725378152004655029511792153059335590623110073142534703046837018805608572793103180231077566016562151909453529485710919705070690017557253330464364359723352473518463575524356956469224597943503985990309198634146109581521781557948468215754696549887090100680453117342747580571831194113668892266378443784573940991865062636229830998106303634286886780543015479388543787169399237452058466721510056934111551449264189642781967128326208089248370150195828548645648079294016949365604676897931854691127079941902089881766307145621458247689745115497559354436755018939413830892659084256139033776525851231959643555327811625411274295147528617177289593651012013983527560840474172523952340194950406832256146224476391732658124242817492040993092830521044193138083100744079211930580243487285645346216593291343077959549030071718974672253887257976168922015223189710695841336385556741213090666182958854767931292604601745611474763694745174197572477566921353080529896247848421608270556110316753191732707955239978566867829773031957348954219068879866585914487424620969048826922449590268700249983708944256145501325875981674469090610368107394976943987872380877989888222464955334869184009227808678579360240978802863649759703889698234625740941030080139030269084236710302000234247036260330202793719567784899663552398592740136442879007539498415432580080210512609245614409154842087076796339692077908511742597558354670324552329602597439117345998894363548837915707612948102615279531554292524111927656269396616180989155286017623565418014753217233498160999196953988616793427027721861862781336709252184094144849934079042422809208501281800067516510666465724697427395863764715093220874648910864685216258316949006192491815185154170765211711689322463211743270016848550569014873618189363421427077491585466613687831257953180826417611200945666868698696461799103805554440818377490095903636661792606970331694662391759482624539940711814941977405112450115900311279913193368789127858148956356821509142251935678003556893678446346367201505665973895962765405721295707575466456907417380845936896125503481229801424832041834311433992646048713275686526142220946917823630209952146432427904582898182687498591062067545764963004902841263519003676107665185155801061871075162937597181501012363815763383504952022129128999794053334810906901149378284360724758265447377975030020067092895590094917619910629925015485504001825382845106792195203286159767799424998076340507320077832707245214702487625345596085399167781433659152047109020453005499549224471130837388912653114529006859739538011704025168690819327874453740568083021195029434149176172702846864799747209786365043035659712606598437165587965112710356273363407819328256743219759073911971568051882324182643751265081308749881734681641494711753840384221544578014518184525515236083624734946458470667591003540409030797091727347049586145813618413817449425800289469063723465500904640320416262100992264344965413932727253011213165523310799868112629340472451005821536042991920387708589501712147819355590899445806285728875777287412490392718201513393035865962532371963925235812728827639595976837180530635016177839823979173821308605939963318543566989622776718112890569184597953950787169032089158633903326500491666805049610484725524681622530226357056280449589186423399113012594983866713723925872966152343578882453036034995609317285821234719967014709003585364908604570665236516955999248968909359721037088096497978738592999157720420027683389200781615566732238205071518790784269400623241742105069352934811651426508784528481084236834703057593487423543335061153404129165574163170655813356246389526524283020075601417999785193796701342751834524545637090873842331711163699958819765741281535540219693711446566299161732830159463256962384475998060108888339336294053530155455111168971044725903940638040412820008224358901181760295842785419510269580636303854373071920812246460649214981114757789010237163476815808942200596643907799906443426945641085023710080163971937843646713473305314777927122384918176912755963838783214785157490295356466991755535054222683527109568410480335287552285612823106708324092223211786110481018466935344288567241048386895905861975292904736599567752859439316443841028132795920105036824350942389719256437032053733514544410537747740817128633899635582054019389426418549039520458741115495095796682548867627491407126704107703861555847451688330691557516235992053641735162226687227200647687815849597919040015117197580402565009504327406945717756473836036525381049423201367724443790361528570020399999120288735846610205971189466595115723484004972226612977689328448054251869033367421276055855906546734692940260848749468675037733584235930299461510038799722612582083057296243776561002660842409272047922751767183668655956307406488755705370741073155512316532082773951915089353674587178037069545074788438552897361290484138947689515089961469302456708603056238088546324972332190089039243205704922735001650930770396646944402040923938078943551642130461839153431256873096261932434496575115414001553280935810262247370357672112986128183503700270950735100617901508185273408373504810381093145056582166688800328174921949566501663413899067118441781136878602178351226974223073562291229560393560495151742156202423799905646024112021392028948070793380631943528790145398067386210202944632521294539903585709218801449753887715399124473265479769803774692728340636756565838344520930871654120230043892646741395922790024412042244958755049261796556752480805025436594278640968246276928843007682162274555787382671969718903523100749725128466188840323309042234381132726460395920538936203233699758058075704903871522754123601146586194456306821374983016232045932994985488336268051216499929451506467301117512090377265048393215549911264181102547804208767931999657073545291407224395025157772201048990666783570200010784788083947008502317188391314463096959401813211474793037047186001255575549882331645726674294966535715480572747491921324790189695573707940310329977065167538974903036573836296301287846770848883799718390416728117590144633169036448172079890546066969018621317626702518561700723703681690943510772939859575807018852448556549500319037391516137236441633513429318429484809661034904204526550359851305030262977629323545758663726133104724200657753805779050735524043413976323693171603436025844404556302691394659569848072506354807538470983866007740752656614639959801950359420870580552908547658208878249642230908966804897744316031869433438176392277694854707987472623648696685326222654120876926617032789769765731289735423576561705337678905390516189623979443314227872401547465342884048623545531869967699336538396729799395940939164689571471372184084763664233310080728010533800775232259948666715809703662526938813955589611142310446827421867833741713368226480433941109606214408271718284975047813279283780907403236459837990274841989583987743477453299661428607518036190931394490723806291652778792992378777493329944851883140536556626870011169641653894691002990152012233861925375691483779771534920976984190077550401461916839530581856117535371265579037394047991667636090059119713264921614967947175138613413526995775978427429318478880844705063337998028117796949231253825935960858263176700747795568445687247446145943874339504663411569092009954075953010175179692415936954745801075652013477183464178739371455747224146205732703985032505974550124349527348218224126993550811858022952941179893443924083062677320177379794078400722218813432897064372679811236944216227470139828000758421034818307875954441775387148515616051492344305426810253915869208094766945199198940656838756256474537453813314491433550594254759519889204843816048297210476171211836642624832935830806298043690862110149234510265754505921855491939528148776619276298184125842298877292763383238224612872309989781780642067710400098772340644464942638998237848278278698549464065895678993278699314792091978693471618329209913675034400060857209743215697208170919038614961541035643007359246490427949202923243264271551863751276520906940902766811210406327129651960183788392124323992397962359786012940761331351848138175124176660769809852749869050062557420120594918792192180822225692707662864654598031684710552551300860029386574293285442420597036219206453843125367296302805905805602647734906801405315084660487109486205262368605039804306987562052609548185577792728638564631879976677084202645002504226226866335098879089055917018571860330862993552513282952443654803723181387713422232644867106843298727482126389324669892682321315468140795495666022094968761906862586847739549605189320945816357773659832831164801998674714193486505116869742866818972605765023588559440601732662386042637985153980710909206407990154366905492239339137947913731127152695305124798235502170336680345091771901055571438558545040213779667753470969697080715287466594671573470719026722191765067093850340490930390897737123764480365711965696844429641330623147178809483534537307456801917879466518628483885877613501052802407312190311773976339865769839384979662914297719290549631936456909176833234988447115163117401693661374758092676662699052312442513086354307291814901069772719141391694303616967429306182277286577917882899577005724557484454975488212282594807617651049589775230206650933168699252207413573140355382634381695608645317563660719228295830357812528761744612749000259423684216885149884148512122584843233992515885366959409546803271382486678866157285721210140258393672782864304981147128978921973283618945499992400447620950470874108600671494211128444344696117351464116238141087045128429359489645870374870399019924118023809878603392721788026903505402678199579583128196016052971415938305430480198126859319225169852301776735135968298124493882619831076423444704879492225584231679512900158589749300246598067473738289082605666249440788929736784825104031939972518278382029866427281997550324720542135483644592655248105887131552426552862593601193593325304063147977470454951523175206751837438812561887456024053495679431993400003891548744142091387287870020005138453905775130048292783366112023478955994490997334214017261822325667476832370989697701926129753475922142026495936665522050813837584054699579275443692117167827264435237285300573772223476450410130658198876519415403636855236458994999407033880241457441067523208397210754272034330026427364773833519904238846917152121172085177850747133074693391856209848948199278764553962042113519345613341211964515345119501727673268348477417067121827848065140688576088379882977198179668709600830072142276217557167082898337758393085948046944240034345850705309857139723255096215129637627556957495751415707317929623114136052194302793742739587871747062520275652597317297579170067448983797359363578139761174574339997935524602203278928618202181748449064692584247076529142851894479693741581692387519736979067553942471054912087232468548523666799485210008904341594162899987991226822608038547341573407688427363266355802010824705120326034102159933892706890221240105988514880451730780079390671019013560735686879426421745724910226986062174366838386871874514244331346811827181815489384388410041304958990745457100070695191927755347169143000122254276856820491337606971942177940822081071908715765933502389433898106645740771374988352679327265908339061214152935125165592488139700723761070968168185771100554944762511540436815713563151866041564608514011092865925551383493058909205954459933841676580701429369959869859553025006560682744695524003500500423977552055563569170306655850807446318269419854646946467593670546534127244216676539723063369424072635580406752610244636061248555837067975374561523485780319684787596128722065848747475904382214425404571625060794771074307104587674020898218419340361081137161918204532027416266208826060858100917804983561174695177667705453824608266059534220724866447531827531500117155524781466028221314518399855418919830776931820080191544303397856130742577134356757835301855231540156596262785807756430771587946755201675346649118248562558373370011857172912374019927819763099428014973742176558122850513330400001356614458977884672832274492910353214776430265326961736977624205406352060182779816552474102113028916460702420097693923354016659757717459559886019894156832440095873090784850400871478325979149451753734145922775654568440379054687151171112225331771120459542407058657852624403498449385392590116820069854990177131844669464071016759801809243373127070441994874657888380632425560899145392624574561155768994146867163955621123184715106716849825434400455962332496905849141598253264425240057834608798795015226042368499099913903329062848363910346113646658445704243671456929087174254374308165961160210740811614856965265733484073814930849148955770034819220101016841692581717184898868999576612328966658474322297736965808204081695089473070378685339965671078784156490690095927735538805828649051468044768940435640219329635278562739361675620316022384617612419313107538044829439402629631299023585356697014432099664711587380003357667216439447892290610995898904266950697172807679566082251036411434778854286784014750326470976986433564231371211737772665003028731249211063421163189660556547323031142201620326518398834512587991264616019483863172682456338063918369947590905652713475640261572587201795124051627647563374180081028006837622298507500044055636930487644447922367695502490391262504873121724203980181722005811148141209938603968398120200126755818624195792275811547876486834610694819449639660494010164133506368465549028164250844649275813605154948202836630840359114673679790384944939829815458743731043496435138565272029690861385885375614109842105545990037198951343388854235747992062596906608193866124416697188878858379725971368904861922800999387402703606975501061233942991033117195848538537217541086694417749844732620947935049599487493954227204347969783906351230895407600559867563386587541660414222941013378174843054142234644644287878170113770895619501967205533009749297734265634509810104381685423440317516861659413073593474859371341897015632907184975599543203417556694349032558543796286036663849841156003819320350300011092740117205020047199722921919592583178864187696921636211307464029044873617360582078035641530563646227880790724854077682156292054005128849906040809668771474263615897563383055667303101611570789705584340031744813859041627888846823880995060685314787845945424798979774104068612255810317721939077492619888601794500330448946144389658570258158748147571145531712095795387123048213054366765382826046644375071462681972836091041089469916454662565520123064287328689490640042526982571208410910180448720552351013386011740616734081806436789210695356180052938021027917797031418643915715828487847740452956382776737893444700101335883679748374932332654019284011926257933005522233689603674103443883206563804768484836909688203348890453630818757947357688937950128028614488286186058170621108772276536225154925370321650242793629937658582715016492459250937109400380824095935401920224091054603953402674219811946541139736239023175698790935860566033505308070602506550042850686003466655342480275409167915539287414248677407321350054143085481431618904945656681589625652255205398000280073892421608374427199142852674939331702555110160223557808797864498632075693289492740814486341640462783705086365015919297705349939613885189823997631281582761877473552980495855710880198537949657588297156846202435257172948815532526260036729232468608585443283801642768191711035622442787510864772749233398098668054058970059644617202049674217405441032088661032706410952202912298142441396181035552748082443862867179663154733562983558479884890481500884372997654142324854435695054218783927694346217265858310945756609994050070605422788544436352607527902973050757977844676968822350793788748837418297248687323427617707936564649486272470835674486752683728498728886937186141301963423519153525646209388529546582433188004212755688788131626741127244028324896897665552611779995409170928628064021525491824470053524099029979246539012983309176619731447155485399006541806721466596524274610390725820835280185877719338384476179474491342164607175409334243627904680416295309846287979359857680777767775570780736500592934019049015411460955100903826436590602627330202609930870186018818126206174159661913595271977174833188464043525650005288205162189508020874515383593219378777149507542180626233684809334759621562732216857760119113813287818907925817531888218331389689324327114274866209883934106343867275799427545538084052105524960777140270565383526102611546033325947961067817652018159983269584376630840321538724595871140720798699631234477395579089148252707163556202971362487730048630064438662033737168763277834682725201149081883669441937707100118225216167307355107253473106116561062314455141685769728002111506337861758285432051113226086772608827142985539908205397665430397032316789916613619047657901794765251288927872995510010423172862688775499006402535710997043841573124128961753079905555010549277221943471384188471200601847125598492398840535732747229847409256564333967534020470100434813774017241567961630303178520387610768497012140359968770870219505712599145844099285621593846326561896284497678205801345953860575562969424097481127942032233964000025656960621693153679967298067015496378065849160927893058099644470908226762460218683001605239600207864597342605694613884077418399869759801074207879831992321779305400234274727886558112863816712003344062953691747813677996706815780796055970742797944698159519896077562613693869955453618927354087446415360472874460164747629715607226575846001365459829427658016565417822116708312759116466393784120616043285861688241866148580183543871928591702448030380022343259076358174066748370694493791229014060507053545156433064920467911712750873907488571998469943102267381335342043582910010512510673114154284642487829593144467958262860140050593786799310643214829077183850398651613802054981788938903216696044282119656373697918919278624748917427507630757318250486076281710635867883681151232327827257770409144593491372623585928734178144040639975873967571466373429394531709031412964258176531185732281055711488558447874308116984809856408749106823178020077218340962080450941559195531730463403412198686319425545612262468650486120708814329657633267343630003629391158630753558642797067148581514882573296613571507434247464468009024943319781570092537623420446592122163380521668600315615277038479182515349912838163022443123651398514627190143457130201136568738501529647046988277107510205553860072044480694448806984547153234443864773952089155730995301514757382981951192731378659579302818045062519815334331464597523588952053938109168410199222563724921386078794538298688918743124124456366639315743878262026071503809459563110745549340905832314371280072988882900702346223719852001986944532013633745720303177268461155052395553919370334377676458364532419746875313758710498825441891027111774059623507440023731048987972580536327663937035322324211856855159614175364919863415023801787609908051047097940954684358638387045761680028505758983917021482676739999144339649755057932035252925623083187989661747541982768209978224351674459174910950478402301437103879640361379831206335654879023881122463485935228176868135039396363044096466363177416900903345457370339970165559143981788827412266801086783934643273606549478558624081025213705751799198753758797869400875714908064874565003582608859659940003133192482691492596531491112169155496845103333232261482492539935995095756977150361413679341361898851687093849033798636666487666036939253208286589233747421366472524638156818124412770261993307819732421605205870256110796751002877830245333287316619753761333950541310343657529375410552692678717585489819828134006413233692047275024972230771490755697451298314974957144062673518435669463244708264917866177257451192522504674686595884328995594822927502366500411202852002284597608692469816138456558841570835790777436307273862677668146204897485163103321823323658999387860132494115413635166815050875492324671290703497553916597231626504142847345492797538294817681617913127017219937239659916277976041183609378985580404475788109893789832273683297982841713922960540021090025912560031728463804660344517676773649764090679988033171981718784719192180878182875579422118499274109849222142635018840771034641633026984962998698694085902897751270713077060920775169213561187302777927530825943101389116905709090712557186256193176064707137169852505871045086451469213590407702276463780365499351260220439315542080087906597362519276529390382250552239592435602969587398627243251371291495660923231666120282291956326744219626687738979136110432804697086022662897085608695809408916565628977073936886433660014878941098025297501992729566858685364427569841422596329280019191255507294328205948898202084031278160767796500516555200062607367906151934626974686146501866300455226190460682382210097383594881889129424516311745199449547283536229768919622317176229378945193861239764794206681403198485638749026605322090623124017121791331401813028061744028019809143719958909690859797041192438275587494347730730701706674560683440478312765961806636324658866265695342092801609291291614182040372238234155583604362028021171297072630762714880114330441097177020560274036752398083177209577587459095561731761047600801320896412099513217507555907535368898847275954460167479645600241965462689994718990477108626386563626016241947943368717895444895393079011429379449722652412341273883461194573794603613832766530885338030612515661242229716697383620411894399134103440742143792086147859427988370778554083205972453152794460043407630014118310846851878095576505289721569126094013685629835522106224527266013219861494201167862199048393394907198159425028791751366876566672234936619067821480921884323812159075199025026932092937002096539228002696196116734276029834120668400026478336911000357876234930030792989554961761247422840589813113306123336129392022386196627569819144915779019202819158320810625347310308458954221197182236319770932078127014134699488537668408270110415456201742678897263589266974506935206871458784989569135387384768336100755059317348351926168758774540507147563073701748552181457756911668287267673414887124186099386841222581840595463917072001288852250729829234087720287533846586560790740450330733777584061641661481691656815422132943921378527865316828455675865606923388899036420838257691825630028773599493471818665993006985878685041421715640721635962945489757184838471891302831074735484492591787997736152811868863612530053613671471705845460036915107764275307501643810317828226140806240235414648116557650810539694298826236698232353000045697532615098635993766523010441165017703435254335424869109409886162002621981515413058832155004039238569515454440384399012284178168062435099481459723380724073354225804411873049661619320445167858535907664709945142552971558368076257187816983338169163337273430361953785783327849796962619872861454831191003428431923430479589694276943852717792335163404179754420986778902123768288485193138514765853314853448431149222238459486190190201747540230870966944204784968291820617792951567698516988185963090493526709472373312162067498726921114808894225505408923495889374537856979761164645245875527773023929227047043020549044924442204367005110010640039833596836057485400799336575435190491023116600324530814993137277178085791431801557854422939819639644850688521887985053566254893260803803089391568901316117902529135002305965309428051383140040035958166802976168640689554743795506929544689919303279708511361481671305289753150148396216356036417820526445455233589314584081378058634294488553974787663494370577421086775272131940061281463348163231673999631787233211565602110306168968459029432470283237148215531832686673119551476464218731991837611627248011895301755495493118523419995436706840747411736956061606427820344565768309900912538523049743606831338003675107562840904552291237926621206090291704993268230059316811986837750207191023820086799339988443223117171546247897845570876029411326498004324790726787907826040334377438078340363912126130326275603140690167977575343493215006801204580072115872235165406502914965299981635044276621022947457350171924619368494108123955728291991799427487011846086557031611445251624448156961742068434305510120678387111058758301692052398044925843148109472611500597604141512378813605781110795674737095537756419831810894053831119416472386619396392928054236125726075793203396950704811713311714734391122741644379312952132780905349530801721752433957211285739826149326598047908297163925443949484102793172091299988876584942828496908735577508747104725505006686938679604885513873925811990697530074540321636499307907164027029432992889215815843574065548226324061988652981216477066057261973667901040042979140200491223178536749867474450643056483084853827748286368634155160421542001151451622474545349864362926559041487999048073213635672523657743649664914294364290558204703558338469939948057987835463897299594499694599769507508968187776087433694728266615299995620325302307831611241301073130939060307516830543631471895752479720404178421739876764142996718559488592358651099737767402245602958215854473612859555251326863240637130066385912581856010772451767396391704480843742725973304550507596159809388469324072339187329493793928256303991589957948769164142959874730762252558848636023319458237120728093258367060844029561554524075167483850296715999957162425096781016288390793598123881018289032531126691194260790364119050120601092332626797459353498666124858705513912727848647649219623382283701678617726728777046700217605403032758703125605170370545797625311292420496262151661088783760609365722621361787782213635583583111119287251817930298746121680188447693284175448140120332064682191722650526200428556321744259351628638990051516912571993283300691027388165012221670592475334496105893149725999086328296788237476478391671379128025323649502693932245673577265097617668630881150739207094095641317591538271717474120884314726763858774239952537514982857945861145033977111000890563755129361679362796171699712402892860169013170560876570425344359184494002852770148581441868555215841675273509605353251127496648786357263997785727058486409700837002946249163466567779667066350223678515744080313260456301468329551031290546767574323315294619652037197051427774938312103281047601114339697219959096276398355614571721588480259812478835610256096897162695943624331496897301298956487301268931756377182750212788391929739017276517737085962664901177166529341775026870398103666334254513600462691327765699121307443407754338105090002238598661218895797890591309553873251580238147250335704083398971567470431614979826983732583936270037315246612313043813455918424223192474186279656695142872788819966476820183280900635273416990290325329953544832643568017674441652856348328572218016049360055881870456291600797959262565609297390661150935856465732092796419088376371636195882181929853786720096930307029223608861959716263767435084046316996827603056779684524788714795641265229364725616267851139079076688353058568026416098973809646929812808447776094010979343013936690365496721895898339172075485689666687887417961661006719017909482543551889200598325283202658777892725602164787952239262947078805963868678915871951981027992944278450524702308310973061429574352266057369338024525741906337993784260145538751706165933571864798630613179819224902099440309125267644289354410589822752056631774871513210542907799960266707472151760682013814706625570540495216450986792970154909124051252604427033929235461435947960959782420924664295394707934977942169053163786530597450261154759467290928573204129726263207922284953111947805214246342481695593452664351405336508551308967183175068901851493596508920739453985845851060091569755686461889871357788596595405885441063781556392100979090558265457698329863170197192767941454841111555317399211953480547399174249304307066850193652570698432052155824466164788114184357234735370010883498378700433954181764174069173132086977893955590908119076713204605535667383401349297718420768874290732923594315557213971660324452840814537126140777576323877087843267364458083768479841527950983806384136290360220834948192328327846863778759283469899360662460763420134186544765876900516603197475162901888795347508684315553568586149751942553739623534552761300182790298096973707869780784184167041776368801902383130547582255768105892193534410685800997731320783027040918715093851767435608339487560878039523100557234328964126567326045084694580223937663166601893826687630208843196075650649061906318078417480171293063775185509863597844507573273704525282628980100990863538422476486975299317724954852150270905575024573469887048716294027372922481427146393086316077807048699117566979707532948535085557275355965911378909387642760782847490631267320077341318394485940226751848589035244161952880350775484805258226362059073997094777780559392500421395262100022468389734929410622448011521430846236600383669060433655445936504500836970438333126559417004263408951022497103010720742808679610356725793229955536818289527211104016939709903374949599791124778280147178328638691915992764281891546166031468651570756250833917364304936156475624057437809152234190751837071722933304494426216573116014220410744617656679909874942730472879449406859172078212805052188971453156810784218732720702403587737428143223755632440330171136811766498656139565641658249967310216670105543239824209422008436598161109646107155734364889136155895959615521419870527670807939234417442612630387369518009310271010300147587740534786447743683300900470193575389188112737034387814305211573507876493885426960104597645310551794674654557970538141546800242503435466537423602864006679834839457522279986160235650726762212168925574438744418432701465570812282686506516981908999000687473609123726156435065281084007427755092472397712726120804695318251177920391475692051657885767807606987412563090608276793412356705263817282279698346047044416304908867668883525664182887486610659228209385348025097648689432050181416645050168905578901751266604767753992969383564873138527598955948409775348971665336377396597678747147976223647610207465847087510712433874672531481294439611452717499181585869009054786104932578808401404222791061465131222612534759348120310947126707435905570219972130620164549157646937980885072231487387774529571219250315340906785487346994675156786153163192909952316929142837422732660738681399138794154001138411547796558718330090546180877906022681124945630250252696833783276329779799679794199976481097051748032802905572501997233508815224073181585839454678319239309851796799871647937589063223666181285475785282913448676339685987329985304234233959357558888447046424912442190062566314875726428808944965089804308091498481775645037650887155090884297881147551538426221530946377701118188296567102835626510329820830499857906852329509568626532903327419115178347656310421554035406989637790490804507557373196408629505202819819212479396384757455422086443574883257145926482511999451330811835594445262024800728404753478752471768855804186717905480427907137374057571377704332431442660054716710753269351824234633148119497001736391530568464027472085464697194571076473342594774870309862233560986257487793265624402736030348727478829487236057433385036621258059793591748549040379841845203959777189535991630955887688108322137272508969332459344553991916301302916885097203494389883256105511177871561237621993516533185283675988415075455783160979133075356447037827217591219108516731816607470564757198776479662678598604270152831182533990715989382160584908573545597991241943542418895770513704449431995021903792445115523948177862754244459010787522444903576518760331787561149774576350163034949839041201894087968021419432123765042848457337719138526682921188132885153469779348606732696207222782162198435372009136421292435724809258079248559579183588700221868231101588415874857943750275124766828842830559778811345677639089878590896012152305132531456844282839886343966874807274306919820135287098281338316412917673172389286836369837484684431044606041982819235103262251616596163218480107025395370782039174309980598270213286368416597396385015008122927201212274661657530899508344167497567530760314238501287496101601871274753116207692770893259384808691126495508967772273031356804910761065343843590473601702100844741469022492937195662732977259135636042993451011043768073707755184942710207029779657413201692375311337887452813975061165687617812719804800900568048479184973947818152739562359593607668869247638585502007973837390386582162648459445169249075638295884940199007140614474167552012776914793461760415798800708748765558878652482225644231247868154753462846415102689412757049577805254322728357878341474926960805182458330575256701812244969901393822408079294515413736035710655889539839252592759698689269218532475370254146470048351510299548664834522535269334765939579171238493868181502846474232489091254378081315051529200859185497691822190458298340759446477422133964605204953995881013662551949674659533558013189517822562352192227391441413994653854035274431189264418102967117105478861310317731499218066743511140673539940916159402059372691782981153653021971997134943355637358168574270167502893116100234119272042151681053938365794811443644767755715307898329456698860508635631607126114189472925267248268538621459323134003836962978837827004917300688812485256604697662612002849434376150937879096210345596360276142914488063806453558674901316431181617794778216898423142163497481930110939068012836582806712072997329331562964009432496882797600219628489970217091410573084496000774295402822412957614280838490467489265311588792324355429341025999217377325957959348314428741401707260182071586801653163898099940284035418246742581008663945826146918915409424303648305223230911691415848878272167419203999690068554612989634014557743565436423795707016878114234439254010806734327817121561302396731274325195093833158432860819536228895819365767611782094062151545154745497903864378385803175327756092369243602595144616374520812779170428853227856245783832895695769514187289960375451852311338961127933193645025260809273713709354198749382939372538568380732901980993541360386244736693111560827906206461743409770920078059774726073773071370826186711355388893236445624649875819982743291578403811510299618324404199854013764958687191350387343628734323851830357719534888331741238913868370205939234631138530274059632091094942921699984659139900247470271530213553696285296249122363915682591189664151578873790213009829781700912320295209446301929137991546133490351101548051521550687140506548513579499378194217634830229394688180388892318722958402523596854367584105058003714653666374038730193489237774326079720871012952080899753495649279508847136955284570163449798358201882843555227888286855643301647838244214428291709038465408226202357445184949608083998311039775041343526834813507654840297477605499330994438646101231723409428685589985828917878409636096543916444238892045855933249197486411055764366647537892267895015246128574501362247165441055650316645153675256786596744943794584372923322692635223785917553429302203566824510306958183477428285059153765078684762091447452559488305759539703758321433359157267710357781668311415215760146617902858422713068027114245421465656065896134188220975345579296740382203027139338356074136859366356075557015339002001995626642243233718024997453883093962553924426195301227967208775476039724305812569551949017757301934682265640179057659170583997331441759205632126679594098741657318535211834609341340677177679818000980132980896318335776369049280723204900493582733088612092716647709707049499486558619021225982794487240821842972490908876157907814194311465415753605412620294240901902230742440769992763779740084131201103546600464805749384857920522158385299426460779874616773652208487780865717442861727529510217323539032258721200768825609026621321429515894363740973213657467467410078180652795298584948483120996066123715378893092189987261856414985595334302180922227351953553610528409572709681154826605580340846454821134662218128600706439013730570564543160526821008111228054353326062782399084970126330248504768078905897108792298005920792195160411219648944153409711978760604136643387496121129588570031266418193523597300141974450438382944779555065545639663343397516794643274052649817988297042508556528893668163179346939875749238076171365164734002939591973535283674500460451585674561825394952682383126337596697658571026784227853468984432212080535293113603568113097023610392570567831233998380140818026493061486799636069196732108752018607101110767426970732685528793783344334654239343613070569006234937289196349978081433256497074305152409828910543124365129585323467651263652341670370851452919960000456850222863350433003014342516339636532761956694428378037321714175777526712839072146915477630934716396303861013892151080080124586420182687095078408262519653921801176113631657493129657177992771350102081664110798750458855637505209570861416576998190364159455555635093021087609913430060980464693613841087287293310678647236989545393356721034799334558399809548984236366357258937688851412794543954759698395106836580255464348040279119235598597818845904179248079960930653594466300062537512410076543266292307154451394965110743102753469319038367039018030168637569790141464592736714018013541973082870779891972105034399607133541794656988545197552260785648179518233690797926415823613255682956232299259761460762343274887881440775250356231131461330375874260224337728380806791601257413150117922418599417889403514016966039974024942305180334641833121759007374854289757706698419782519820367568388057155484977606991849714133155781512765672754454799829245543247444378259133395907617215975755397298719215428971611499240115820422871191828128743037681681340764245134096762661553667155905904603951659005032864552371555969808359751318966022977891518957199738949109737951124098427178281175943010208517824041748863780088912922055987901280690183562678798909265958529761551165070833506384916990295015016718137833672905935700540080545207972235736272708569421458134415481183306083006182790490493216980408708124423711628139240773857778974119950547821810444392031891225813761029738183265152630682865482335632911794655213943996791688239222795474443146268507247180731344546825743742569329902834937308045046018627236464894410916278404958827598730649355150600928461076701831010059974553632768859785131485987205583152970757805548499704881841197257034208151057054380775189006431128281525226319105209244418686868920616732609014757296286800314150110154126124493590200585552967836333919439270946204985887063258961981313909457168310093640445285790842295638953818250521969231138786645023691779462396740020388215572294212425138494873911374925028772607949216376666909054013273060192709387241163161751407865520441285046185527820283852664244737654354504177766304461895145022623969076220942947337197230320821185108613453964967718889619089382005362350643012695536555516486348418014188121448718930271224840834411548964115706823715995778383013863689754643381404963022449398622693400482006323891711624434274817056019065525165882139531387766402874053846623423812609767794975424770047827450117101927241969527062182280574675246808433021770937634373276946363461165430271751621138255826753724920943383049156220829241010386473642553268660260278413428076836438578020473425566065936180230909666427713177412777284229798330177716357126530875168247810500695336835629451638454680413689926490378316608280812699562063661564162755068331610289426804246076724366852467878009204570074985848243776209649374919339539675697081942676624733259026458380673336952200532402650903017279784284233641318851973005771838156460855300395727086156600168411341847869947254594852925067699605459687872613869083180041676689369848674090253846043577451771665625423575366636951345876283467034754167936487557534310744727316256375208053785352588111996261446738173344108582987595720743321458575266370465420405964410798334678561636338754740217432840659455887039481135233730555033508128611734735631681816108911304992556692971721892666748854451630924314506201167212602702828946852257103981480709821327810978021612140829772633747923153573904926819751604957705731122881577277567104412288265169140287169411551603139015071336543276965177354388264463355879097215880339588288880639478969248831387574226505520597571666803622909301830295652214648114094823270777661381767320996963967396574571123827379726831080094754946207271460727941744989760588438921017517283463058055675156223387772446800284778073424457405040590127665589016736971455057627046202239808252101602579111156945342458274780576033238050253226864810342231757587430075642743108218596163407622536807723920096439563328619066973513958477811453270335994110207240855403207314366102304012177037905861525365293854008738228525164799640109299888684977577869079934927689397210399507085987196278660913835055541247383584023154701666731207847646444246088450853142714933365858667027425305315019378565143458928691940007846955485843867501085779620986839218114554307399938784671297659016578689463084785030431905288757405694433539695011140247567776305018368646590682811210815043799088610852045065585805181192916887332344494158342858695656995056168555623361153387147561846955172137150473100215068115712419217882904955636234608453659085874831923618021466079879203985442482608665174691646198905310594010955955195599828490230912099956255559407230215208446447274031082592282751498751356592990019003336486344447894563646782653869704294065534430631904068161910350970346378473563561366652245272801293261632102462398921200627331134732618246451691705509839070273518612921621453963612614237516351978018090073076338205428896451226359749597615381706147530088334306872927167356899086538315887647197210769024664281391520839079322793918625264545759352445180188630198705265202969630603484062388717206138290997855199394262788692924545314060811655931516240639815627422673847545200976145173540980668296819421699628916725268922603934198922476983743895006980815147592374264581421459624959467080201375380787420575166029067390540583442753706498989223362955055779085502858123100622388602808092783885661687361461716688378690355655405808617000502716116656371549300134177044457054915573853257944395161620917892810696966567590056198377501227146286535451254306066120134912279104070211678968485803539644203671292961510155101017348014163284665828868304852200845843034489148670343436861774010127084179509324624559895028072983859549769595499651677852425735359881673970098678922662230170351378602344039623256421310133944505620132279669847620486798610647968563723413351878368420982610717165146404557380599952552141425790957972258605877135411151205740533331032776573725523645809887606170373752503190461328279290111541132936117292689569672514873897842054281816851315863306555547515889946637793560083621176502720427091494300995090807917197629647728776648719030904411966881956524642701308211343163853732302753406282121869279404267634317157951705999056035774132288187841004064019540919386935382102111798416026076055865663047950426754707046364593921256091662848193621796975155158713181752782084113996808066563026346145912319080237877746966188516448245096979599270718350108775928314634972033266960038782288855852556884828558448294654066983228754479194891315442976845638568566548762351301469115705089620912856062810698467984714738873417708502608953596277558000101776212970809351809088689353617519576570693960954454925444566390904107924350397042262124463191756441405569512600604432048914963575478349398829177989891369640164520263133664913101498595880108535776100302245141130335893595652323198356437539198118202145901569729710003665298317883836133956600836174621181801821224990418980671285338639939865609339245153524263887429115017633806939731467451991061958231172226435153070663079871303065660465271021273920597546514709823141287230337108765554145544020029671223975632108809843357867196594741396362567188480962797828986054451993510843165931990285429426232314459269487411732875631090170489729571654005294530737830754297154811521979439900552286271503456449711664295802815451483238073762620906456582175418953400735105986170025502440156798555533407832578646679975446440661733656992386260012499390936260211602181444748165057733164603220448786572637504087971028736916916090706720801264886802056620900389087853609938599745040220647810711915930148852244789086662190510229904123791521833594105825224944208703458208238752246227304083674585018241756840629810360386219173270764249701458505672805260522306089953927276685965505773442246111401697757678754089371347957540899363399964078911142239200868233211348188666556642810216932145968592651341344644099073422263010667338831789321490306224597800970727467924758516860083673659185755014333000373828394818560827032905848886024485416665913359969787653473510078194507432057151845277380172642318822137695093578849627065588519717038984031777057797790822674057551894148833333984829057025855004634353346523404647503736369360143344776647091549460668654946936199962021594000089043696147496822919055892532633598591261434701672582604202099639261695072557667166080300193571899104181775716188509723281272661447662581605525870954306097863567308071682135677163118504086369674169248832291770537818050086865592447190744606334986120444515172554921898300944493851174445608001341887729089965953783906516934286013916009631543646381627224652943388441691250110052751912191876197401939249442677017585509230947715324090720085631387352884829416693951375046461698727351578885399724564460587084902299005221797002711218635658566918692749051713947141463311317379034907349220260715756925226377699712687609313441214593169703298083496092940385084220326679743480348870499731739746642115503297667733394835739722773601154208009392164825651898487514353152335631204682901518246570563827264671653255573075700901002925463106951093529388998527552826823173121792033641264663110500649312364957798393738266481268102021333620213264533419261605509547425318506159484648675063785225616942183285992646568440087737302271858017990800582044899919141064887745201793360345376846334263936929245453910255200353500236061033259400912942412570527065988720919125484021838325773702743657616869771653795492245359910233893834172206692512117935501425355258191308096346462536208807122109083251510796340540644391447662436003168700185957957848008618672194134007816088283688830385609395970881825442025120285084440259409386317230259534139814845543963533884606773183837508027175939003855401228317859538098878374840387047700029191407157726750662567054790972379883624438810362156017649124261428200839387458120464182312437972595742632480350849216523265155162055822395439253553059312194668838506474484024754184449316054662751961556546843787232982106244269616982076694293823778802790431324252829447362276637867454002990960961193488788140629094056846847631615939922781185595690124007775222937195768264183794355084740495113326598851392529998376466084221663144991244094889845177236706370782521467059804136223121224453386976262288534489182188152357397148925666662042957130499546323075421045160237811534081599175713090156115336598739385739241898332464998089629936442737610737993590977416167058701996315063086485995744805099849257249077971709169792363273540099026860088087880897966446528160307781688349166416680994600463473631772107331885993233149664489431233137341594116401518920933006873527317356567556387607687877374796825568795499210095162830417638076050348597337463601550121043252333085450376582086808618305421289222129057669637328777135266241965321079111699252917855980049822422622379221281590689914878651466625745375741999244042165573575260431679400435083929694880880360423682455510790862998779890393607936868757037439868717076361544686975631718541532255024653272013839133220325573185528648431152964304271974077762291358662982332757869697085891871491420312162088250082964022267359553270962071846070342588337036162917207206118236422030217242327122313759554345248835203646548709554563448352512054157601206574814516248447437182038141761510973702330262625163920974969835322358219456977680150266793160762656894987500667759502601547712308138811469617670918698576518635837111388424774052349087801213675024810383256884694684507736525435464419573695302097366266721857507558260351013096777237333363235308994656854647314608293020848606955159950684478687492992403222803885836991318337657410962190834800739777766576230498641411671010039226928824742619038542979609236988143063874603219126885136793938491819981298720395806223386049673100398594864588571879559448719402803231809968823200187033395741571672456615964948936926227774646653338353474060030764120054507134604413741191507568963784919228647210648998941636268353005153827831705039419136254020655175876037267639253034424273515951207905656249235775321563714851261354613237580059118783665750619668652468276132262481765488993274967626273538570982631746595246615404302539100875335685973240606972900463390863992566696741299482893758744984512945443744788239993129490472089093043849391485676793036954209094004639458278335251938616534755256264861195310664877420964623569944734885538380166619573061792878774532224507092499987089146636043321845730503520765599702839430439051570687428862316976918411432016074700643255736178638859934210074068414778583520901052516412352486731202977791587357195479425958868603087613162733655526447377732509343519496084189526034087220818710822700315154529289905449378421362125590547672460904004353940492379926664897263073089871967173744773137417405121768509883008617077503902046684775529208003067851403472686380360694844447821468992077745380266412425287759045677796052711906114623792717320325533218243539430687895496704347735923101829105945590497112337715103094136275836712383646165920937821748157534002091193963183558917215711186098396019072610066281921214808559306342746088665119374569663059429012559120850591917358184369310075303324115411152876231034204986618919156506089621616557604693723862347592721853373007907715152510872854427146756212867846121461968044793791543327993994690822432563688876512707871214079166349857227988923445223541709825089251390741496568722069958602883533378212431611184964663764433737251738747893971430637050655840251173699313950070355210072705994717297765314244462305220996788907211393279504762121101469079126802126484532325084239716965369796249644278841396713975324309313927268028876176127543479590463904006962059215563896081949592390037279075445951921918258390602637162578078885073675877494395639253552399264344043413830667624296909117341459145740389974220482936427418026469962902265639251064388564879557455507004648085747773458647573251053597039145284564116925679101814000420438794664892481984773522772913329465497314944697488129598791017981439919826982685855401239176768059845916520128244267961170414390720224143562713199511688848976298033434192383230180304240323261922346146235783407551123568853178780967241707384194517866466687944214762288377338361002419743827228310894409617201906763063634375619292143984365770333570082093290448007399685747283222460889262525099377717270763942079067355623012009621203576321292112851352805864019509289666829595143605247303957483386619019826355314494677257271112495200228825285676080880577582679533908719734550567083094231806724430159547605814613711405652817828148804837464190183638312093681532323025906277619251084357934272311556272753588285189132536415879856527261668995342460005055797016921548321452707313887809226413778868494772495975267211694178648581548976299213242713509088544455645982361233409893353860125723778689919082206162453066832566449227724333434436428553856762911936057602114352827262428105972500565066107586461311869001997007431684819522667649748114766822856256899425009829696971524313686637918815177393838256722067760769122484821141893520145983689690104222316763901999297477433319455007834614325295443762385116865373946456276584513833543496002836730097980062695652431950086454326622790314797258448545000977794300608698008917769556445818913285275443228065195407767602202197095686896304406741038248138572819320816136899235535925772851640281971952720012357638516909287313599057475069678478003282009748445695118992875790533760560346016636168839389632897702168490653372356673707969819510793845148638063828098381545271379530239182331631122242767294220755423460059967178036731566340620924804045972971178402471710357729636041284335213253078123157235875508193719836284062202425976901644168500586531020193530759596086226589335940291286350785818005942649401866664360391950034819416637409015951636701398692894527315962399944888206711443810150841550693469640792736718326994924300085494848840341210474920901431872065528326907659350580393516260541835046185235418548384587039539739089022108112995607848582894236153584720475638756812576963935532779014792985018209559426394038940765454843657424134692200646038976926154147060747110516918276552497947188930512610209306665573975413083952183817758477288561047398899791262906988960606268821397734162022959949377765148462997519510233434769706202405991316412664405201234763319900288282683424086856758168579871764993293975965156071116353645024409773928111099164493212778031999138038536431227013285248911349735776803148425126367471832610668391212096062847549907117020732672454840985686815966745407202290910733255545937011002314337660270312058658218496732240009090386957271585200397696696539599327977552231035706212861910866264686470572839674945088185338583041761260555994937514531423696780801084422920166779464513279060011566675152593715153414523779818622881339879427235376600288440723445750915010648379111950847452249329750843969524493508775565327520305702058888416794855110317526969970445942891459952928226114439592183239192182662499909915642251602353772784567516302356521351939919661435996248874946351233743745376781016432257863986594624145167359759578444713336834943603837779774741238218388863465547693184249965095975723832027393199209783246687832249555688497829766695620990113136474723049729757612378509537774194379080075019607420724872820860895772934044085728270905621066792057109579447083278059512495974293591245966159760103666889978213330230529508901398894773325942618592950785897627805287392951707021735919768928079767147713565609490915453142966954835016353351853187119248095659023679932935923110248727072997356551855588454611937073457851702324401493099886040134109611502346411827965504107983439517614698871507388613946327645716999651510221525846715714239158348838785631852414751541880222131375993050480917026448204430438351076721805238182791006216245662024505389182194150995796178382830477642841877827050796791294432510576186074591527775394605375958172568349172774759756717124363860440305599227634534861019080031516935283273971115914280345066285078122360990182170353599867914679797330161758263148907128312418778009171305265620095955097502659662095831291477109043208416738122853123281705160828336430599991474230816278530135461018808287808022868690104228677966312461264981666560742140052897480711618805980232227273125815362678519909164936602383512359543431645028031030473341147962690963780940395887760336666094224897920306970627897549477162009881080691878389386713277264706440235074205808713677527537814799119506476894243978455405716141454632115365444173652467511522080475393168243259398392703714535417492018169459169564775894683224761751977871362768378528252319264271825301105344832089187809527664158438016588658187898511165571109645819344700232049708371668488755464092696211096854115758960054471736363493758592024940103119035272488953672178884485788076608640999081822208673173667792632723116403895230709007985115418541721167128384517192580613385630462851083140262534529560807951817038544090171032675253135339646015140197701723477352736345874321672007526810291580781927105959359992017408436470021008582113583621133792285997706690559264523099945580307141428913534596132986142215341121137746549714795411916789174498476213557718206224286360360649526699094256949203280799117646737716864827200812791593495016360580514415256779022445090019673051239475024761618625804974244037346622589781923890120993701952429992548989963542737600798746119265939118307006920262028236644304700382226218683429690058576252648613991260049748611291123660439005681479736878299593203949812308202546120186437371151590103925769169682256307326034995992568619857831594311235624414694510428400288135910155814306623952146412033607684066677549796744124031001083799140880454391676243893262549555386477070548959137675798374900471135890000747999862773300189936904446496718353293404672623434695853543382680050864818068048782109284934012789374933625234536683394071999118382025962195663235722605530724347240579346516430225313995589603745175155086442757922014144490451557034607772613999456857219948012367713823921950011497126476986191486050826550686562726047280175718952162196440633258131697728923568071947747394371674534791115130975115405313793546242232785435092548979910112558483098408812508242023575662691120066831555053760263980597707286247457303818679434994755993823213489232797604812112871112918862482447521215610378785547368207170304833258465082332586252516855683496099031036163421478518538224538017541368664616866567496146452721223378402269416629370133047580232323274821291611129395322131110381013160495844226651702629301044371803944381852834761679110281571777445766619361509925283556946993382059846851725416461850147851045070640920261380637432845323175127190546123729441696822965740346198139730594786939282613450743901236514734857328516860115150197476809085539500201927227514926850865191410793994745477908361371947267997824444222017128115999131809192436173667748501080050628656589086970326462022510103128099610181169257839603649827946905937944092098944345878402867615070200935776166029431332324391256800058598927216195232253921303324743251392027857598478954128698931450643422689796425173748536750640230352475622775869978416091525996212143018548223173538658931960103947729375271016170883986373593967501084942944853669301573009166877535839465979509196032097896093094184793853930588763988206110736105302140301158366476831032959238024937368685255662330627337905514345128713395131011788865775698346580513428336805297938978117596651829706669742886422856414226017544638344706427126509480197769954356034895558103906606699590247877164550303145481640279300658544398998706150672105983145920336643624073336783270165472933887329346620792601258435295670511281116047197639085341154727335095330730253774986066259458609415303953302092005738348844497930802860312328592307928527959236738938723390427005273751838361791485200435201740369568342395944968900816767983120253788474429725731239359323356982673732655563196542219628295747969144742248224080145655709766281101323334633225552556903576533075289103382738112002718025350247050698921509674044562874240258615073057713214756314037763837967298200601417139406902071514652769732808837429484993334525579999675754861940887438323426271746789897258076686194296393150809304525173554070222331805476767652191118870274051915651045158532309560489227285645978073755095320656046697073202746351521763679285282890568903025399217027057935280718316958067489456407626418496282743543012689320258985203168454335985372128490530675760228249398410663890269030690821972503151875048413518189931629225123702210801665318033678286903400365709087024429398037436898003461753257936563800465772532030858122682318438711250777533358371257004484168556641029034768632228196649284943276696441379763427848600090074513934960314351645027435788381156094059889975639574160971345061438532297789554637588197476138888153523740407588867591853719076564697219172132483015205971767729715030329823764045655942785482871016215823808635659332064812006922713171424528384428624210768185528207830168292728651521427908226162195036344544178530872847807350910281927465915543969453131813010824215398901436273733927467623682761889143590703327170510946901958215955735829279405654840911129652322565690983109652282577054761599198008863195016524069112187091450215079557160638640524335927501537153716824927500405317225286700838179186208090328935246289473756543884970262923614975245028439977888836445922727867127806144257693933658781483104568550574359287437334055606895281239189731476364096621200736202983703783420569339665939879774110816171821077919701756759571423005929649590310344690019171390160227057017544387432586308102488053404461828524495462974521058346049188053573416374789893978062023297244223279644624981112167367620669062863283691892099222297063203265883970257433364722351470855131581817461242569478383550316006034212012062744812141708324103044404139339898585835896082487610409416949792706990439084655627745604903395132809007736251345036913308886174467621342646314296143628134227246509715673694063242153939989973534038531970608696331815873243552954732561596720060002405034632600101501003530949014345672402829876718608019877416861361732302126295100125508926108472900811682680048137564289755812683599241851974064947932949832315784524765992023459605707008273369901004699978209662907038505756962668363213838118952213351562528279852544197163316175458770525811425019302487398360577250914320450192571567029723828297805078429559791468420578654400394964481963930260256186682598809913873535694022859943064881060328047222693096912991949023472827014352552743462602974205213429674500985621677829426732403203992576479808792527134803098704147628299823641089927697439817940788150438210374968168609305942860478647973203101242718599544097747124804951220404490583432734049843084193873870265285746124465812969223426616070905281908116720116287714204525621268676217333709416744800824690573202239246026600413949769546592086223433448616803534235083498269279232921590055342595112369104525793318339245641629998523487683684933595033899539125018347870709125024858744796200902895040315560707536851876418222285035011165384840035990858333170649829405300903468998421531721030055546915499500725406854118946817565510747561632613076587525287295904751295054825067141313918150864797097346528922112267245521841870342059602336415028673292918774486500538335154807697673314130701511276495956109948610466057803823896405928368339171978796841247177915586779069317029652278485868984967992848013687940475481451402054795676663252827956828560732470259675204436213536269866560114654563812740447539930456774505021801341735441467382462506070813307733866026146236166556943276657965251413826438025579133792776395150550049719430201533262723752495640128393340009237183444995954690655968725195359045973041553313156732027255203910548718392873219092912544891582283821072553882476618332349584897207270886014245497137730191306713546843666762770981401328211527198546039003791119426306042497378896400717280022997681578856418384192538147329576709785266247748156278331195256836103534617024586642773455625459006739600460521951695223883667112943445029336910784447406546730525256828864997968822103401782214416942821717500243531877674625474690305941258964286847319233535807709591960622194234751511829951790421207448772831606350766295517553681573076890554755547826745474344850837895223351833618981594627038101845936239467611896990196045318953931164684261452157501943467193500059039390840574580234019224509150057374556128917818330163776024112992429214298422270655095835034649454324816314496741323886026304043961300727473868751692217811967505577188536055133425390843034203575992928012035240262140559595207104508920936106733818368632659368026354693157471600708138995005638179167769475513405956344259905052644201252227431933044591679746434646606756954707090302099074251158280188881963884715777650819499428373639665791344314020258278887911853030176361237498092409677205286754643780897034247221481034183981752132633339749636758823644860663145558652600813980186893132546732317179883270357713254536409493726754723890882447000990283231712575574481318116219223659594382416570313492741299613321940732215113932623393386501300121635675425685364319623509296236778575488496037511593420662424218130357911520487672864792453886402539850369453961407363261447231133852866794621316839093206738347697613971833678041880262309167333729576860024340862086258350277130470108149839819429842950490873087494017738079542910040117887846806398025766479974331694874321576912749599629965334079092167406954799273941686062276443668601862226025663820019033376529026483090509053262775968727768772999257448081540210423369549429339114707330368873135316530730011675604686271094187411367499997828132214606873439470326848602965728589825269409492707555851932257468356111462009555057137479466857642866065865501581396002387906204025420347491332860281351812429517168959914499015257579400032606130603986792878882500387136548430026287755769238754235569774289226807492457089828192951224244198152645302763054059983889902779580768073756778856959227053719999525267605423858617371350352469418858523392296671189375918432778210436727588650730515741262027535415436748384860897309719283676994320493718114445942864090914507485680334331746273346929920547866539099106987481016526939038149701363498393494557080882759788698664825565100312666982292505107558006943354416731067786273018958592313058139944169749848387304799346953972945907557793447847998371805969047476688056009681081085804268584991346579209690292175318571706150336414820013143312342432508795074965442066795287382251041625472538773801333511830315768941773627926592711861649192166861918017192857166389079661754212496291608164062607215958096909388230734812960370943065792775426635463080785935755965502992565452932332332548445493265085064147637980286936643332911001859583981806170004498917181703733320573244058907532210834012281781801412604909383163868076045885291488419229517985576425432219622254904658962748244574466416878407923014667416859920583450300090895138535229047510374843022564626187790542666045286367684934407492567503441032936837277894267432306613457448177415883991748783847878420107168828340406042570995494308644283259256230467018644921142327369948042102469619543271284813521066424969436017784396568776262014112717560937094788135098479250242833303249713111983921059628854727307971183694011873247222308646906039304441416556647878384727313450417085434189464727678276884977601084908876156714866954472996561114163690757569407761303100971509111975382124874788825741452406047562883832534228870606468068855654379287926084431261142358169572890397400599511470098151568593332714529884873531483922927845867199045587075749312607728718023842795135319113928489966843894899808455926832449556759830837555528859950039244926127304622188800607407282616641193739092455060612499157492792769812919730588575520055458334826382767033309980790343740962048198363962943633150618613608782839519305153095678269393884818393966589528584245918506468706187332276832418695912893612396903112620875111888914845303701339254613790270109665604307230339420659680518972149308187713662016135791552450556289586350237651542034694425675378897289835622950552513469302166491089416093663124190421576277336063365720317269122955677799039427151909247411690581309601459057919088426991047748260156549852087380737069934164881012988277076815952836481154146526761368791736088885487886493718206826382464927546512919349047971121580728940491676362987944044378571842099676110891253205427536927175706640092556580968442556036785408194129472339227639065815358020138240831117366508074616906746521528804616529761630691353614643120052737403110323197806450283917505527752488470742291240633191460837506799160983604800175573946771065458183311070295544905520166088316983095070089004405847121850411036915472658488125514447178040504125562816454772344541083692233678523183691303103977556371077007680699453203492660314685254306717209859795006311979379366685634900084126527290394838611530537971376328155481577911548778652371590596438303846259349308419223392352644578165139631001334685017176005765167965092038018950572668658377489754419741826258354928967781365791897045393559184056929596966920011429287114714689288923203634481742268163420617669800185366990398969752384469442882372469311779941340170735075985616369605898940947562705153094844192634450430022079029361717232312472938712046742684167967002239687543138183992023374186502383482698052676405601412895447341691843870727701237677114424322657991037015498919520104425647834226472731191163428950635189478035354452618239825465962352410398237708287406635588212728938391867569851308858443492351964919171972995055128384185400288189506516190731695676201045853648147074074255098781407507922067793603907177797622934258893078736516752889671497508841465463384196394949862719116955976377528415509575490187641727934650474953193037759856881504862036612013794147419346867937852633262886061148403819792674780130129473693821456159302517717839780533486217477213008405622103967906470753684656506444651870155169958384170083999508674077258832393609686354024152790276750270418249194030875130158157343600177236256640746807846830835458300644103649416018819401454521689045619483981796442074285341028451940062931714887115105903723647452247957463849782639652727418139672128610516948681087060719450332926387516618154931286218357409469401417352412247963648474036534048950618595235503330162340215068308907371873185727178566172624503010916695459589304237337239057866232768811999657204195115430733874840270428357781573950349408229698092978335861006591282934649498204932387804808134910254287905023633857735703299304848550695088732257590925427398728966175103962679828772330403492217936125899508355822198958304206516722198997915443031669294451685941143092421408048953029915584779326420635179287634881763735648536484864238763442861290540971145278353600255368828091366382158376494274281007947354865355691454519003157491366489714057381458811608140825092482255100480825991009774523574983491226202585239131325176780486214027708792517825052125599814689986195686821589308629864763433252259924264314978618699001425408160193257624953349001812814616448281382950869580556079677943527852440050966726853326492489403878089499241850066193492244030010341818244535141754273797789241104989758195804398540409146071885209373445567456079293308966113661675799988261019366212016190348745888822111500730380204304369733229411516578717275783435235767704882825813419257898873688761205206929038714782218361320664513766556257122029065437385549998282856710873416029300482641665349367497321633611876587029596414481575488092709206279667673112212089165964161225546100875240502720103812455240773029398914896189623779608870082838876919315283267770639782247265220138934749313304807878137440275364552734628300491174188847886183905000942678344791854975412382994243271261753809204727931705816379473324486211862089533375999235323028051871914687672994588049312899026150060004396049480590007681714037224726165966954552026166258166180225200398029508158470322142429560318237372500272651273180073613061665436427063539323057082449599243682473200933914946938288084638489028811041484688828725667918163775701073619007036457324565041822761872270906798972184056116139147925038920853853173081005360489607428322743104719002501393974414168590583252175534802971298288172089822725067012234823101296791704471332601623958376168433345451668870671164524290671164278197944927508116929848688671592214151396974505826578338095572749805623877477713733602454138009666398018538385336098022330727276485989191720941265489537332646340453068954203623659917037440184939735859140628454946725272281902563281858115936643620623038621634491652278296017262036851606406643705061939231495696962757980932565359484126510815787929373051822977048096267307064702816677799482213390926551755098365734091486566582559211074257020142553976444345596493788512030897680556041862509715982632167658510152298159525745800640664502970169483234213111198735720276136736597532933163299291642020295792622665980656252022672557690438977596194326775813611852275027880450510731298763797920555201666689243610075984769862409234163106595352824964584134927789176619344867038888293293345393318608709293589764073283690189691556757968333705358466134550476306684439161777004823563980990933010336296095036701803709265912568639827939218306492846474451888527508316270624179986117384986696220330662973360512602854632332116209359652576592692219893000972643955286149318886193925418815081316992098278976883999456835881709159525795369636504087722848561436984703347501661130817569407850012400577506698844812355258781253787809906662862987845836036666588893234643462833494678445662734816133658731154886038470263043213005906715112204466953019832027637904347841216112712445827920930126157743344856241874589390179200245961118413386542737289311697245979069469894162034887034283450502559456237424891568829946370476679205474669113738032732145069658505696425310988871961657468874059678438765439647929641224667957413419999562767558397622368185507060156298971575025730476744541577720755985545556027952037991230293259970834733632923110578050063349745044524497406327683929549098790991077165512357134117568615056833020640516870344584349673344215753484429949908078593908397773284824657767826390660318976810156545271731469133668060588042003131537331732390512567353699459969745234854302128732617382753077423432159621028797988137540359977288856256205783948193182386905486828078438681284392847874900886858219796733430206661686558729198698752556261754237158332039707689272009701808469337703849436915091085032153790018236507945268725445226991502581207596103377688908854506734100147172812826928411825724216147471775856051993026680015760927106765478499364754241992466907450069361226084902892125430520561892154901380367937403011064628207017110006778588083248277988751147543788937734109241630087171011828827665007289510777543842469041385641510993025368636922794179321211402737119601418702534390354573706966361596639593954656621726715262975212945459044968248218437173338347372381414772547239491875569885886428284842331316751374783934103546877858666858803850771484249261871834275220281156293557485049366109392387005496866461623663171629332803095496880886196484063634369269007530253157739437063321695067424674877930206126246048112427834294544757480237485900419875170077823889886957444661347984751935636577521639070364179085656289472205070802548250968900604931775235795132527429857623257725900624181262399058069584779404962427696775429409483669135983723635634884707444269736369607430573743242378840027995934207391051525486568072991298704608958670852031321258603486799253994976122215552865035604004585236862730789259895754761570727428338099859477076539462145814494573014112609950616676241125440773409415255715389818646509818005569045544838091015914735956962019521729260896674507853667049242137394383742177658492018623232543592896743763879182812935636629729604616198035865384836701473888644649490500286591113583355524098653392107368533726800217462828591842858319294376288752350912826778487370619483262981787533890172358071133750809436530936564392146056927803425814447933271212945055251919864819268696903256711629571187255042343651272833445409291269657269991567256803516613440953412559288905384980211506542835391521214748116185445281466478372211620080791978003770423101477775490324098726939036932758617554840214418658616638790030633193982521406667596330175392284017833080489043316028027509146660818758222368603339633728329987719910823652083074970467848230942126166988245651061290236709330610524559053186079682912947212109861510391037425892137689233526439696297630083514850141853623312778150778197901041522336912232484796252105865967190740377938995254275546436528480891340589433984909144482310500817998927823235166017026059970959795711296429240474241817239576496077842662956062594063771438703864341825272799506710010336269607230666611142686257057926502108163279916914963590133892113487431017531244855925871436479961846794766175010369004478679197310295866884008264824131250133906202869267773309072869200485938811463806094543971646283453201031938208028861536078331032012589459222327461858896995834735185570090892207468538623003682417041558894870990367163605471894601052808968795181669452297327658909040259800811563599234383987212183462939015293645145009870882243457369878880501455504749337867929045750552669150712893620085779563064026494602431134831487046751252450184001282279705399666784484312169925361039480581912951436972415597609166025387269763494562098522991460396112536850540772453785578587613113366215936528361882002275242140467586699501373233512929883680022990059229873549209225497318197055134182271782484043660169165351024192905783007675545155683808797287810232702093865439245694923188927177636448330037178685160793014641212937796834253320963663700686482559245885543129719075352979572034497094777376689721092641944187188545030271534741322720104187936327561989411175164591903529696377505733772413147301818020657189942323189215629327389599629720182549321368037506228562339441506255591160123251477143463609280214236523221014732412191587359121616592236059144558114149709448294069292495369143034012695859674658883426684425092627805242333161067184987491149787710887818251715883719942565545350679898301930906550448398855644419476816560508270042851542536439221126309815076621715259878396090053560754527253755105546683080542988259213601128145064987429456292079189179058981528103312779436306437123883566484251840973446020822127655321118430221777169483973519931337459940916527476693584596439243966949395348584706913596703719507813217000732893448408668799872066646754342925587279321511939364263168404940446032147633009650491177021209333975689739155467635203681565812074212584108702059657821642056800007510634659422005302536676767236919325343716698288249583814387820897345202597328714875248764081593078938692157022674831979387691614133537695538498136415030354211831245461995631346957416017648142531617655663200644766948449084967848657944239534445226247680396736263381925355035074979990227701088114628835117402393148371522286259889666575034839048605411697005347119933054762817091171442197095732574697882381805445943304449912054129656618424957087801854523408963300881734221998579736906145124374796475671742710998099303792489061044473167137725645245761127563628683734313794407748830041394800692302604723886575841295180472006129179027382227121404494104073413102021640057535713408176482086001603006857698041907659154962670134453666775293328205256217408926903848105230902505011760408513502087353078089611739532825250634916278592703469566548779269864626945021447069606510660589704920495239029231182649475239591460367515705058006070285802554466975758733894107400238674997202692198543584747707994362921683673204152096283002950444975810209550252455887867553290070870826395094733887855932417721515887436957860147623507174528568653690846218306312675996949956734891643335882383057198746411244530719781548541759340916684589968656006434700892524535639465927178979299821486229566535942453620924158808770325621057070695100979232831236828906035378866826666923761400287327453454541774005806950907593123678268642343191652734775059933321594428191938544293852738016756271984733357754964749501981049943282695178334983845783510548777443060494970982428829634664930214625396228928445274033125732866451762711955152135797371166631398552994323886465460320532461340290574401816460974106266286884375703888037926843832721460177731882834054434204533679487062640045277091526252174924786820564590245698854490424641886240143886228201125836766102533312966702489711370864096026538078351743280297868792574922052112903854068304346662575058946959094692441890145099435837197500380890611016830848167290489942671749505246392356172172300025987072902204782727830622224646620972751659028207069478474634686691407435458540404406297167349966323866850243215229032734039119059833649856791649156261370829633129696108527666832689714975646817408550068223228782017599794469431568458455140614029554320173022805635913975386205767406488554424926172903076230430270674997492827325049517097311030341585739215111468883323879827601906661628490756959044905375427607760560632741840480770138224764885979000739166698086361672718224564029651465213628512394180315771696677297277754145127357733818844566240754745448664750247045723267439022827903179672603799688805591153736004672984408584016041751807009410938990979278118919225025273629987195463628744887232263804340994808760891808126042720154376357991916335889564977991582285443094381669895068842384357706597335455402409892151963895869064399291515948191931904765479500473530682243204644669549045804672935110702153542713699682739404097657534979375883719347718462001952751907204929794314598713373444283403417755911696484152878253094936588127274734236691280285710142479129989257526380371684460334275373285915190191003163884002495227234146190361752174590768648958172628010121604582149555648722603429607621809400588455079360305232096169031963589989961856264653285340972305772187606427625433111730118706694546705894867308885381334104806609329941744185537934913684612448535280446078788231110177645609000775290841994793469503153019331565222914347243937878497282187981192624080649062632849178356223553391038170747693074212007435036796536003429869494654628718437045140629619909233383669200811012957729133966199261292785480234394408882005335620623123784525772462240573560251890536580486333207265540259863648829963083648661288253661855925328364341825716558878293195250254731538568713827406324823077084379974615113522154739859217096100977338368661799840101523548648299258769078646067556941763856091767664571719433216284461337028550226689979851291579470471608630823014025524793736091672358101885136756680819981214700375492389323114331810505350274972941416357100726313002400006346586936152178701835643892062954516777992563627405897780694169287336590205821161217640111168687882548256210116961991361414482102588822404340899671978282054867945987584199536473250496661728594137887451397243417488260497872859905387573701196230245595198820609295379790244904273984772829750123207403714599091917346414097739002890187493183597270832472821863427200458780143088313270928745245910826961710217381374512341009000722740248963781884668039546819515069712643363149717536178608864816934236390427143774139486358482531415683764988490830131145977605667889242507352318745265648509290612795975645746085302910015818321757413994315572335926028951449593728744243606809730356561023736357808476266630464569570367700669071071772352299500690945050050306230927231018152331953304684696873393282622053789131742692813413204705128546920076031777593610780657103176565016229351636549365950197131585764869530174139525619754148565336136019773643759404701525838448785967601810430680251166476598326240697842322025591026080012885532620311523126960238596085029635279804578454227711371942976208776560759877670354438651982091488733623039391000132032551368194796065752406935675852920077518612302260718404171684193577945186718572130625101963229688176838942321676326779569463478882638802584901081878250523623680519157341269453810298482919396863795224682100071313941503937699944973894582968666450535944726742864336749177073841467990453922167326266152016334207527774793900500251633160544652403887661383126069430663407222536504082422434281202873919483084002775337339988841057654855711906092588294457331276157399224771847771066543454935760645672237210870884357258860662353407172329100479676312245448768003489119943438608413082787707020685121747154785043541930062438470014956048938221100478140067884939061875923031285197045571075475013607602123906129539419045225694891142803812238770666614038104733981534580234232254163149939407274093381608219791938077386901901643660157315442088154819295551159428019188701021244119727214693437309745488966454574070518708324300436582425070172244821275115144113546631018801695054525050364417198720880356510254279164950159843710685768347892406070254468195071540898292735276852156380631688766361227159924111539620568992404062205834763440335325214753902792000237112283656615580403033396102485171810521981372897629259401175261797901931966779156266033744895417247341925140871778410459928399111228214363033061676981326072065524866194943650295227328501806961799966426575135565085327376767126322861065203463563241477357860390544877727311696134227857300751276158191791570171850869388286806542631513249822929997701122942371011271759251606757740807255876342009056073653960367540759217133296904392605823244892281961710418960066729250460104646314744937182540110951898820178260480706545966627669160385311489677246163514263155915831807826129631793452291186422880422081303193700105593735886985943928258928833521050762022169873515690335478654221652286423761273435080068695854508863994963511898434326462625015762059683588501032516328203516707732862173659228080588351004962516810417914682079383003927364600158283736141388007174027759324167855694297438011582955840367841341465015280782915971615031718438973881833046740559873316302522110165986026269198829737210281413615071971566872286359503522303235682276759847105869448022361539127417958328120709940607867464423659911453911959890972628386787983879776118103433125624723818844848552531529312207296874319758897726083138866193411189995610268206351890243569360519529280608070083557602616523079269914013747088300598969687458030439876940749185373776274574489594634242418076038658384095848121813786572842760913782985176357806569426980087917310210562719171075474807526545983957286839407667139014530637966667393411513979673597330952500545584578171138532295271357756713081062428409060879942816650272673294148381242915167981013349365545382388085426438217003513041103178162758138814585188660954383776363017981244523278376674400610132813188402999543627881636824198083619443007059964036064524512612191262555743377181372255789212387079452842864719074879153267946086828290475893760268853840050335067893279922003620360557108899315521643926223528723565462102097374693441919038791042540020149712654956055268164158939716840244419470691083437891968747131479099236926272126418833316153665035085564508278620838950365168374962541937969665373688069068227722105983769280421186992859042143669939799311316760977759605454358194775660913337504610584827124442639994740711127377299831057094667567089343742824960753891459885429683061725409342410747154901751655974924603157131245056814475988361462915935071552697908085030377240634288871697928506531094087544343393481126040923904945209092797886423741813120534494393379469508667685648690586590932001614479942515304143521854083540398317561368693373157534027314365673819046401604926947275537269239072540781415272390465458246127643867699767636615118484684276308661856057151335140906811616756957478368487612214311833276056535177726096482028773939553548646987055768177555509262473683107798627760656022426302524057090119114588605530446933061153681795600629592172219554539434575369604684038488473821425818339755796292796731100863413808564054306542750613963012145903272140864563180983718767476871819437943741857230928561412187942334252295128811252142887185652613788423451254860735573291114068499272364047483502976529956336945104149093832262179176579961677433455870448128537640461901386754058896913889347793725440052685543896100268132909279232923122052448915394961874207831229545894403215436177759017050572561505699410128707259134735547283602573379001487707960420739676762222408466807762017862899545921598744422698523809643326786504996681989245135935155349734534471836138679387426514460060645664586166160145485023634307023113275927640018911278325799366797431566863885905354635132329423716434333450440232027837140240224216350239672332253424568487437849276024517172629209609939350616212402109447958324167964559902094778872088602877359766917668038398990663623519221481632626396528174500996211577603448314093029959634718589074724675098113946810075187150004344113747209980178370055443913040858188524240871653160293885348907620623761258985209325085761349710025598156797748914258648757054186126576500970767287154722532073887070348902253347300466494165280720371306576547098117670461648070371061101681965964347052844702090846904827920256067776846958576242920675570569441002153117490346130192860165507329984647147566004381340764003351677389307346464170652405238369597440152959430637924433987527963975342849984289305284935028873416628969530484949241706791540422295791321583095166671597480330376609247519693196260008575070943145887222231476781844818639161845377430381034432215490712318876234623005003644179307285960780977503375419722324005584504566899521547911847203216386014652291311043568244899813837932913833890959117569034498067568184137860219883307145963083635958357710911557109836192378113683277108834442310218176830607896406749506010978081761747705817239517670870548834170901979043935066056409374209968070189259725131715449486933631638966179219359264140824075806002687515299197083035676705853072100772785859323686465562622007224954793781168608526663822574190696245100700796044002419405719938004455738693341767059946715300117413275618081237346751730947125684096842943930521053822943558286939643842035699282980353759249805306984278923697337755004834392404952998395036524419987283621139203384865011969390645933477863247827092681495482089789150883344255041262408787790627290616385517278381316977215885768535244259300128262805224108646546999020144772211043417453872979864232866043956071641869344762645362744691414912746992083686723210770098550845088894485807605910233639446765095022002797922762393079102421527395862848672845984401728133615668875776281477030095909939898150237707412996490134338683099032386850005217182042221731525348992453037201751745159823036314287511473279959968390701481491059353314646131648584020159838076329612976699000801808002544035501007128859744661235128763121660156396992352852880096675871525112123049805543582592979861841161646307267155371746175969564517006349846397535012508303077647795649274400350675350500375880844209749198959173403112381592491533370240753583812833049054009484771831482320279710071369107139201958456226969475419635718656844595516449001691952724224506776890272294016993648606993379313886354938320057792103587204240887775711085621421840783799003422356901561626003746273140351693463208189915971630124019848931949038496733919080185298128924355880658051858687672806786825553996637874031799092770781549365235356300314772652434354046021122040496466360521771566509900928951372814181360383522702766564208076646465654608440313976038617450353281549260516108719591923289159302668820890283011645395948620311736976253872826264899580064284206065974259583353857079908996819388023756158949201245268134471370401546211216909620556534224021660413985626577453543950049217291745994540139831044733269131809617658672164343214537804619461934472141980756476487323097992530130033262956964787944101362669783995591380960880699978645639497488981877744769706841444553866456749918786577640593801067644595065929441521316494091452441597496780332494181771501965688163904011673486662291790439436315936014416614488478045812272915511416897109023145262536665166563501919542911232722491508915363575276929226751292107562183348218199783458080996101000726603489969917976895707002898143803421768321806545524064675297350740704151888995300535487045356663287519296522788399896079417121027370379952168816843339811086717003300648603583107221105332451900423421390730216363054235536193047487721900600432250532254837405475541392038712511039457435104846424275426493782925517610616470265640909952350228571292617756817982318701872222072799069401222165166538501798437204601593826129598436919159219985131273049331479010648929593896955348118949227496410119694908588286180167645845029405236585873797221290317943050070777477428004372786289831681408192710300126178447043250468558887604149029097899660716555411626138452470515623931457559916807911831153574626817365305055166925770262119015604634030296215045796893522278656741464923535810733679236174748704209843398513130627320204723217087336910203716748419597669502464745422119942100559031538141766515276220335255607983128576536064755480465942674399022779431248646312051383114621779746046666923323912082948000375526060062043472522980768859686216056633180192555557315602779579879902337796879404615200610003812053974533160223777419201188895514842724898167938769918181397867537738689339890950260968899819659360947806645090268106112362311730053772525881245708941920772276846806515653258041559945585073975083859053436223532341850180728732667180821478765604174045103514959651948621809930561371777673192110228956417031640798387997520675004002034535779055533847517530880564970636422351784249471604162808717442988177273648823979497348716632007045194233296119899832851249924035158362398319138622525433733447442522086508294587968172038574057573183460093627115290019703058909429651609986519762948672520897927504773888837304695833322331421616739449425004913920061371955746404081831613452906307008204019793851069856098825445352253872246499161839397448768488848153181597961766621198125457024137747682853434577732520364834009448364353637176999099546200168677342963492668085567840411144696642015354105497351443644889956649796585161002114374296553219489916500404594009869315591630452684957531147260502994136750070775735338580088546874162476019674633381347455926892639836716188789964472598809234033312465717685452594475493434033940052346204630811326442249805823362823426939958273290425802724008676027941200617527691372850431294676360950374676836412996273117905523479122676918174967583593511107501870156511210266610896145155091966882424871350880053146369445767234152278846145750740737285607354439525622422848811316902689937049142326706893458350332067052990057824701291558883432094429759638596196934866818897666890316013411144289646496116426332292950331120627458047774505672184201799816721437793754282093256372957687404780114812943578946334412014597996406273442181250967701164419287581763073296640643490147327565555259424076809136866823385980361587534456416779663798233863554169020962495764193871449206503223491502454449530984197938880588691552242538118611648502729114305790094112038253400289193138890820812165677846231940561641346906626478422492943558252972171837336990819465495921708080837151621346261369763489425274185675026499285314422291349661618040401563220662506624420973826918255530213258133573347256363213014095815314193881228337664960014146278284016819023500071572412223168755737191479112073170159373672266470213034083855993744445329242347237683328675393385116712897362740158830773501632226420256238592218541188684109082105850734852217690364920054809154510626261016172304148434040067321004743906284450241819898406983603191018727429681366271773904837416541726956148949097761541194921565802486297496977202920064235633051105973144263694465921325885543207762562560946572755884961320531970848579149180805568886325131018764183120391719346613939453389669946152639912094775868365599376320598232066413655699632489920617533835825313146051264794953644231198353157726138786354017965898673394307667882173501711421968875066718769887209699162059136430267052275418335106789128104584910263101934680953200503226251799237428072195697787210509894422757440905234960056125511236054232675212513728162559243816292824514906718645824884641442963340965632693218012537524247302836789796915397624859907866389966077355840997888959672065109169621014262127468390578153116110573758111780386321617932741065893582629173877487215850769328523307706208861236126014879872701998158998325739715244614817252030329518447538401141530828967249151338218818189230324424706904936685671830205599032912171335479239754341461902874084393258533606725791843492395212764786725012561074938684234767869938852420363243865775314764642820682233234530729033152014294538478257679473646287970036373006058817664873371008491878621758365008904751146561607616270598135836007272670733108517487508634723627648845533759639584500344472793877224079409935250526893791794642325594359450819080034822034407422942222355442636182693798473217211576551915453679496078471793431817103733485239711624739994692669194065848327841965921903887204299793203512157302245771490032716707228782130614726263652314028200171231274606396552253119575120005765729640985727475973826179254547390745993929794993660574191493790274196094188572969558695111746406690664880596357172483651411457997375293128080397132106098545525661030223554990519010341358206055323610953280074329348235732895514573994429786406583475260852218856314209317192861775515070777077042537569859899126246450668981332078036675805387650956605220172249217966416864921254146577994440806602677421157906243358504478871765459192743238235765256792099600735388264757991262281766037804495009268737773997332980414755431700811746122768046662072424450945704736076720096706438914691680536720944725363425472274118296751920261138072600201811625286940199723856450790169905061843205935687033437252700138036168255280859922503157614155842006888729642788317167849043193132239941786485465365420406260317697137221390890838156593937999976517482036775574499703232176055732288259468597174961338687555131690382423273856600695495236311358252996516524649988130237299248622392054877214638225520140818807353093902759370935915192835732099061838360855176106447180580909908431291157011361007546946687820222924002585443699605361596152045798612522267669400232431097383149057490523326595143874207647853596926673454598519840283146573845096520327897827323819513926567284390822996650565324302793747636433004105064868138551203818786389000519839082968492336464524214304691148511928705366565173541977685889633510955705883391472977052701615788044132663744364602960258770494798528748856709866196143319790793451784837875057370855748440447319902533883571263701737856874947326596535487134223458006652056971118244175197098331417796724785205386237712973092973382248773977337531283025550903010077785600354311607139242414194200521403799373965320514481584036998819992650272389522878607465455911003512397222641114683814860275850716237172431304534918729441370473268479289633134606645371461577586585687453858768341854731185336133890052867209785696386938132719837547616937948528766592346402816469923958584974091265370353461881218154083428154345783760995560829287535528271209218868500342604169523195291226306350989156973310714927166903553075848691051195683425921153118820984375675689409248878420968671310613560687795768442570880321496260994602686252048926951314621362878013572410581607120575656764993844964842813120088771191126440347111607617643984354448067654426629712910626150621426513294401547489456641585554888252197301603232633008876177271402064159797295074482918709847025219970708563021624336387826390674675777648556057579723446914176197952501965044408173248002534898569554765729580737065766209271374816464680345032849231455617279868122798574392003890902299633647553983365922452725192363761222179834666751889923162146090872489801111706914076955782537349713001257871556325316673363643258234214743270845751034162095638397607246601760486391540704223136716861740739208644521399366395160279471495030866343370587611969834024002923427507835950971360831690359955380481713744530697785233522954277271638739703931112995810935072158695577060698171353524556878888017598908941565971290634992657786027676149024938673348833952489784254629020391240290490316696768568719582677712709811653300918777597920746958539807919191744342232048200190559229503749862522061497541943285130918545331150463566616398850831671288057827977253727663339613446718690806227689665867823973872338159430871522040217018783676759610391796523431793798699154610924512845626918607637107464460572271179096410904628457528363517806953780620520464332131078020112270599950997983243261877185070234085620379080082301527596886988485225320892503068257765069005102662647909907235941837146302358627030732005303506387970595880256349709624681658006264221321188227140607334241277528548409084804785257315169229492361304862765884423686804115273358144957134728498627660229617609362669354622465668648004339130738932790344492941938220464889838510786987232762337707655047249415275395112223066617798253089415250377021931588789843253557778128587925808414683237075582310586347200207460145443651732030033731407421882690502065662379738449713485331346674022825235435083001193247561934746118377255964672158223394447914357231443204371067434531804075810695354195239911506753734638898035094568572130574696645424553613244395853511051060847338680603232876248026734563401929773857497626787032765871432821754707164874391884166587451470947312561807482560763358418691536166885955004595546781980279214752903629929063135494541750648625586501141071975439692744073155610550165140531021952423920330959562647432049873124302810636117209269016011206794435250088188253446065843898514376608502750790289338039483657895032393073435084024813479103131803754104782756370581492081915743555208848577770450344471055210891622109437659338018725534904993018699183461814243043475160292522252542024350499988169361862149550534033630365537009096566371553944013036463836412710649081070533303776585590229199041870836396044202952661419163815406843633633236198386679457228450875286751748294036515936651527159930493609036069030667990538843186436160454016287387701474716302824053509606891414635911336854442323503832603161634089992667854808635409883792741729913211302693116012318238569749714589284316931845582910533539724091367054802514467684876360610035149698278402249094639242670008191037611117491329210063708030485568520031248200159612518959262804192328616192745594944242739464685639383978343897485407407745179533579507280867364451703532578847099004595661990405200257424918007719267496898630288994684139117764953836093888827505958011196768746822165467809974429405782559754124362869092660369807622460011887474628443151074461171773169467186651443718474770220195935526293079576216568394528490780945788391518939075480997696665979752287617530000468752881639761780077748408598572581614656148199218261857129724671973164833582825492265810677717182651060723939177875107924326192696732194468092317361864520413952569654397433105732657323003267095948188033915164642351722599843289978991083457968851819356948131461538545489121606168931593192621560379590061218034054919207865623473678246895370249845903608093816536580713586751293377838646934632744646806237341671607833501811162469443872143513833050976318682612070757620109131112239930261193305195236886591295935081579719916846955636555368067774121196517016884420688040847134671376194182963347908309003357108118295034786198576870010687743245840706469896066111789038695517604946198871886044434665862224341698366202545024147564528514827575077515898042128809792746138279003929179102686504725075262176343332625016363347474599048929053798311268897486216570738916101476671960634098103303351332406400896390040315091979069254260291156752111049453543362577175764644149054677036751597411462686765473567812626411666203340286177011165923868665057126279272043988928507282249578004932558425188488991816252855913685145304071626288013025914679893133988939275617921327518856329934615870296099311580144117989182184250225299494814512623641458278496857720541033826996345842029948766526152287651474288968287837348185952046319087890930102143567719046466309220946189344268457451967934551823138607197929363887372580903799443280946703911247900812996765060666224144771129392607151290983586649219082309943528405635647108776379455647446288699559824486409618515032705578118593138811165956311878182751932479839208483358587101629077070304373746051296639142067741133243308846434048060037512243096760030085397189311473820036992873673891198469488119605849791406670903078500912825349925479120490103698828781036234631147212131865151945039184756067772942896686333676625834568388172471121080254995800605673917827550137391917388547893317968066227642296077210192510580895975130337511047210293177029994266222912572881037071282397201417555894758040690717628065702635229152053634142196208439926691695308002726652881663478553149713477404514718774877493145229937204645957147214862141561189146161227489818120256445872611123844964083451971794726979223805997151525281196460338620898145721774275360481857990745826930598924492447789906221089263476883987298997178061208983859725633413637343049011891136125843075529617484024368748966701488171382494521646931568756126850005888052299906488346540549302067807223509718023886906238093763073372124545014023912227333443049194047135787075132427147620913415150351021928498436730847853254131786947865027507325606798528424607190990163211990720607216330738215894917962916021413305431851277105324937010069942925670152623190263042125406362159879706335197988165058052041675751884169318654150900980456421537996048992429473854770753985633254860328030098506554250841188636848686843236861642249346315610848568606801469281420840353062970630666089144243253032318014856308160555440892749614814523872951483056703037847586420567908285494988598090117587531692917561163219888329679975525948557375078235143890733475180721268483227486610181453499847312507736984539978460315431835128605952949000176364372333328873244658804992886759765404623438578724021250138768640975179474332348639967185941044101239642210671066431476209536583123800858586764686503292735744030718740735774327597212040307056397264509566558712707080095086372751249336702810752895555665153615580317337589102127244057767941192240397177509384090919836392240293064922524370338463292489441547606892543473652568816668849589605304967081621319537393611076353034192264780321780932759753142873042171852142651156615450708601511394743692184892121220241493310617404263321377825676557226974593239423405710310908989157580709358988345542638936016473383339784032050927318725524074256121900779488313099385704497878034340329887165808656802490687209481963420351809118402798110784835750567259104394492779958635039651856326824376948362138474393189177110839833293067014116171312194357766448428312352308229707725758826110891097023385529569301616634624400537092494248382917699309340756313732720639447264668910202669560737837649541439062085441873701706689556602690376635578988046054782476686090588865884986625039390210295267136150987812745082565818822061522129542151962265131807399770043923228522776094557392466595207618032141768954619201638078873199070999092879752236979464041318407740327920050835225252466721252471329452671260440987527940183066383481754468951946022344393227956104684809609890491426273193603803360112239116092464735286890631367817626643541435663218404545092520991602732844835425782889093541873399045993960826836417691264839953092382831841963037526434028641240585326072257877899641275335889491105137784551105433085229992223249465241998218634065835127034672138172748135205966426900086442100643236535800496251958741308023208490387665011639589728412065002698759723102504125204235032346020274022752935185112912383038448253136910937954382377090222325827940818452886773499969397881243392233150694589743851196559460835346117401011615768227748197652556902414360045183054904244272842710726197883011990762698361497447525343456226536896064769069677055431133826744062815524715634831215811783554805952673965417778384865505217841519571871199087548550764085579390416867469332102067370776206572418236135618566490668164058492266201716007130732564040465944312856619118624852936622530053610089670739726859433647374879757756270509429095586918301996739461628894813121116816252902685897555209519747452636346449451635392328097356991592859933224130693992173674970933240419888455525858997519513875643819191242545429157974387766027948701479025452602271652981373242066075171655918457226195396577201075282122169598041399375929187881328187769539481643803345655398839042926291194023405366428495741077898235419143666303082910240335183841115731846611849692492704295332123589257159323564177236108830756118462493546939762374485587314857529665236062346936406460662340433279723549094607017036741020444469775024204218744209767981452832784930461316035460606988888164234750365364102066517657976922935497298748197652072056848447896944997190287235440073119280190538315458159488471425273755027463427670870193017241353150443360005308777494522211834532392681430816845598736183704305421996071455364363018940954601866503027528001713704721116932353158271609531810212278479858458954443910298725444670046136800550475031187372104845941107022059442920324683261086655617823026565987200055017618562855893484219158387429037431309124505948751096116558310396586349762998921416054093227864564898474139945559433899783488416907429779737687931662542098772158023931802155520118163075936059793718275038857900095619511985439604653372379378467509151338889895643589264802098999409529279221382626935076598613100688182716387168052049815301523064481758942815706524284170923237028074369982513923166298718480042497311992612169397722092926628321791672865233759629995522772874702946170091725003704314274294420909760198309410758958877781569396631061902355606471694045080191902856335928455701767107616717423206231952449438950558382733648835986438703885179424907405191032963726650923201119002779687466345469132707200066025225763678452698962595144218480400014178162261912095768431437661203553792356694742428492898829455378790472360099492997331701774993528992332194774178279129913294634913715311585428023488067437820581320930926542825273684803065279508043686041430193450619147482475964542186669191115168810105603515797429740375630561340198526167762683182380983545136025813361302075608801160746608916941507290560164847054444283008416153738517232159126044098031562079824894909472757403579563904778974070669901988569146950117532691572451047657613981860698144875541524565299664684154281903168881812702505326257665150056073063951680979426896154264121962286734936948945160370866309873300353067452182388852672198042417953321991049009455034663292305686202246735849673185748915154223019798073705394485894891814132622280936906469294117427514138374364544487195565983658748501344073712486059852862665773895029548699338845795802992578241909791049300105325701628754379299531572863191320570236492892471844559141012059884106457508223696341457156757626723101507144146354359783045269609381056896577495552233336125003806147336231146054412470781996093496725719908056647253752627260103916638004182785903930827227490933510165508287262905563015053048629847570295992228451975180607729940769129665463445632045876329781137750914234870824434731432968886936145715247884786546547201285871836785595974150451118346004351441985467803281376942685542088941881065182112221968021148538089452936393922604179892897961751165085971090564694023556593357504220995282604811770440589539157236124962051203714676934330038726666102575955037948823910969939326108160593324337074842249404989437676375351584554453653817604513160314415400930497567018673113652311996219715195156900456595721423622240047398529880035147968501452282555822273611674119203704826629393341256297806658493418395105959373614806422173117850208034062444285465780997289317273428486399933915358844807932996260770039135938272651869196281512938584697446499714052706542127065903210787251371921938014028005761528052279992140091557803140639245791669675585898749607450872195641986118794103105776099733349731396130359301122703661812263479617349936550559864908136803487332866064223654209027809567606389451153334467040202119852697293631059673469806911511029666552802390087388375999308883521553702076068270474178988651103213095221966026600592079189205422750882425676532889524524629628057703206677661085001499005905799837977561103386673976392143987695384663378412982498995254167613907974142058331260313953616920645073370090237713981051041136912390918211683255906596293450266520979863408353286218494970292154892008856991407238095992972670946235151368296526791313023143662489882362604960573398245247723059978385960765781770545125042188161349579643470785110671449757914763669428293535255330805410911659688053756290194879262280754067909625171537404430298942491242287443393454023791930245280008694758294352690641116355549574713356683785487562307639401536945528965382519534181888887863367698820691181389526789733901777611820646013227160853590605086018063377099729058334256497045376756783683935884625565606927177532923207115829079200579852358911818458112845196251987621752109398560318523290751747533514889699912608998787345838338555590627034002666220865797523099891866988769891437905177078868329310460060050883451906838182780380240406829379795931842402503594701921330196287996527386041623332735190694984986332421304753186462279966193951476774519405491192399054988931466694463745964586536574896560841834001927515446401347956378411400051665169857988942535567673370911075401167375402954845249685418387211585257333326531379816308700886974003352970524894979067566750361763173936709729283667807420986036051733964670701054872723755371937957097434017814311409370612744969216213937416310975989466726190084053461316861250504846274075343380195106715452626281454714606869640524149618690159513752010497654575504868860867674157540236106784923266235072012829207262042231728635132765046368699077578305351795979621591153375017738497122149101518089247855053880985113462569989771282167716308642969365907847390774372234932228770818065437358691101673478459420231932351561538760474288657121377974330869756214240412742108740796004956967627283609443577061060715438377261303817946258048135251124111214404381273808256773192122822780806467495547767409498401826342785441549202676780629433384647039910029040637130401938413156889376514661021170007850835527160573150428422551727700246577957719081293239886527836436203181039578873687116016171834116237175801904412451809168605623305697726752623366735809581385706084080025584781861892358357689511647421450620695164647154495068992530010714658456004131257486477088850159797708662167725759213977492751906807588218585755781437102897072422129940436435401970484072816540648261795622297675324356240363960101932274048363773355449506489464441228044436840660567539265107227845369301976767976293519912477539965655778920334280126355749251323776531506177130280339685500682047592714709606186198983924875566183837842998085242102549175549956223515491940044304702267310048847644315143207936455953007501796099935006262209483967525722876059410113281012536266844520263323408350595732331049626345086923076737809758367412315173767235022083968858413839592151287888094621389402679888676325264788608240651488866219586307902797662274434841585879976260922189336698236114272551941245410407157007414391988148667386718115257223253222020363393639387931595850740228802136165162122374322438154260494201923939881470136165911729496565319487947877404077220356347116695660492195765319468357664312586949674562245601907715219234597811663858403308453432606629260905401867117229077966096664416209222369698005521220794331860213344015492827661906448620407454228027098134917316333929087187330410955300031327273682770453921394267141622949870003419472853286188345840510702456974927672006931755348485820931162812550573465452565214281904930498443200604091263579110491483652638968860453951117666796426091542355446878866929959362721752486411872994922474241045785012144593535006094827782670074396190076174596251418232101055580123392727624139868825069924471972088573178092444335547800118173904233597870108214060590088699464945873948745953054305766650932153440924832507851552756444780958892158041834725175946510104752754675968754703567332967475312025692626058207898478745218541103167910578368797469594199351886941426537145584675283010229331473448664830536598144724974315707208971592232953262831460426920758412488359910930666903807473356223117322268104141731504070189643915224329905899414806568152496304478668815649238217848484109091589056169255207789032857735069604071655415393747490017135530399923693910865554951887432849020466809516649081788747353663637185546469995519144105380023574672734313334021336881280240378746827153875111387950235294134952575840694568699939166250527893601362693894549906487688601606707592956935571623721299387120222205106726199703800407290605034252453435391621350100144260230285238553570704881196559037520078952346679830754933617499092372009082909855140107883688080194467439772461803443291900426850931382155891685424884489311582592691740906516496662679981611756191805704503165767636732456799492593486815522997871000634378751888165062696766387911030007117305143882607607145562765603763916530003339828586536468139863423099135899213830523890069184265381701051740837717486854986600198322870533054122481684542150750842767496778146648740040995866800060824406267511285139800909127313408872781207621358207078611328889642112118562076703734216507706939597218303165975174054212237762054614687586058229199789347171828534867158319651477582296417097766850324292714267368653675127838471530035218033816565542636861229696137658390751015011563096364196524545113384493162018372396371836981812359398574622800272368533220633919461489516933398674286578711661847872908132809142755757359477480626432891429864401008694282706869754540402463281862989587181953771622103088993944386516295760865719858181103734849186159715655469301915451200834401997215694220752295494485587028091682197285335071229611955691894521358190947962600883997511715720803393116709329151666437957397349084297129483036503369478629658475783578031171132996435179264821013113128867881008183309337237935940274303416677990567089250693819347507981547745924842271040051274088452063437006279569420916164855488968185672761800818230677741030369629357763004728082671414289141524490083633883744380512078022488215030870817654933285342131518041173848860180563675463480219346412642055664028260720908333379126751731405141729966050170301406452973138999082908750019911645170927612326961993473853759290669500863167595683478785145766209831468212101486028045988488879201877881620659614940395626363710251539937217396480901053057667345711338406079174516082935961037733681938950342931072389773375610991311370181576586651573577089851670394070387059194748963330521798852558421263586945561277704832372336345029101885770146657911589303595785001198800815138921865535618358400898597228481199711142807804383568312288473729911917308566255857665413275915200725078510221356122699212686363420289158350597980724865841083103347985054958963997202207553003974394462990842036806805688183161497578541890797978190964691081820848685368712596820202593476302208543658337451647929861554495127449352674487224637861346441269044098701600344244081819285348832593325544554650944685114514915079107259731947923566759616366916831909222779363301612558593929222501457299036915147300210094099020897867176799448669457624075533574159203243406983795114555026291095125869938268240064614808838864487734194886326855923952276670798473848332998660459880848650925836645561855121415362137485609764388531595175074784590415182990598617333573938559963487591517909801995260715372830410708892983932962811166200964913325427770218652139426358516599419019393217483224871729784046724743422211269172674971553779044666771723609352717886228381510707449810893487938887949003705543523771298342369937564384542179899895519782764900047075097238244401542300687128488729404153232126810517381011822542887430752412371823902541594099967453732553545677617914343433050807843196588049464451956448412000315089889018556859675537563829712477503215642964483697320480195345991654146854341186761885999599954178025850893064557299426955242527418995972393268728064958402517997035408705340069361967351307745680345766675642855452140796706328522148557145994858240502228232034912527251246505020980994290287228559306087715291467384726793120479511459864967662242889516757552854665569770957537415309812203109455932201507714848503015288295561780938795035479692061501362108955250828232222961215890331366767774802682009308492882957763745196606133287278030486355952560590768673017848176675401830083220566852156867838772532293543516468990260064289666467772154460854889963691622237010531645370085889881592904251076341208886280790286313134334544299538929264375869271807067573120111053401758579494196204099459080977638543538940525399840928311699973487414343222693882042122283534452848228437852316425896195330297618646469714356158999976069598231474551617518896900237145635878315358062949942053281104764696562180409652027331948579045332196005985593157971218772842668417099396588438005930497113523975188922147359933973322427157738739323199390831655537046983990588628350587669185227595427728116669110621803105468391522077761291913140243644503413720356503761417824470425793620376196771979887875997078005010452215899929529917258413717914329963985840201790737875768171764205464317967262147573290484982614621536436859721675853465363979210459995995229654748343031413660821020939110261528421689795734517320079679240280850642669292900394662763693180891038342930314359759076964615594505979922187441315638569086587375054449752153649927699391867605152128559732930459642085292607506411813882344377822121051764098926617747192014647412914653507156288190987309178612527691431295411840959041971804899341194123450908575128375273370607893422880474034886263062392525373077990692936082158196224347490557928832548491095472181187593027025531035009811803682524400752809926149097803058869469289000221630667384510197569799064416158214989045691475913818934569663278216065799216840440147975042013044092403779932256317628727678978349120498776177323833071158036869086021298702408583170510242605402991038128772671407911668952821145255440684370634340383717598674229924337801154025989139771314946604879642933918590526483068283822248282393542259371405690695805051633907837029136330698066647580819292686908190091811195262141937127407374070326105797853332672477078967660872370201223301968195128823093301050942533756705494878638576578693469070811546809111868813983289250465576312923334078995231909748237826049126859666464658518165911716312153130313270590307704619394796172717296746945397638132574961704159253250240285808900084033015688155069616595174861487465495273655187652814942853037484327053880225057222837684915627013071891458945603470303426693637023036949066120060991675171377331093120359967084842025030335726110116183937519001695466971478718370589233088893065889305995896714554786363680950499537946471506993544230015462960539821011382373471607903285851100394985181458017590129143070567152883894194264116992371005244411505228333900282503926822142306088962660533785994069532893029215549968380178574759074618418222649232593961346710898794164409475378191062645871510017888675618188848264897198821005872779078766327505372864060993057391709838863641477131849924851495900517633681927276920960768855283109119190425563727068864514298476040096497652988065010952343784472362316921389254450760020857885646714160985000430084748825389257839221449465060779005781195073758678033976076554105790886456607323660535992249071004728507131050700279957671734702219584696581753431711820543847936932643374111177750854513785447666168535783802575113949776975344939625466687275311421851481221873386084466354587783393380668352164985120350455850973222242626527286551072564757346483592314838506901679130499138671049003726986424330526069561280583567521651592502615045312024872520910070466849874360304667902710265280889174595002536144142102650601339150888451200811340079600843041445544118405794029977303442295996891684515230098088038809209022269174111301951495234008937465865555275311329250117456922609281078847042206384244279577409383431731461686367700187093589470846780124685212689379079123173453772636331903341245597451653310916610483845650176340905003946491286701620142458595392407930893605751238277061220150963567027931763515859131121659601189386759942482961976864250090601172772999507194060373328965582583300782815947995641455471546191183850567408939269885924843997595088729578306563743187750299295264111908479547521666342614127776738026473240601692216575426875606110716811645586248215715590994278675217579412354999974246241825839237708550707683693418709085603389321533822415756864838965782309159106359985236867190544965873531558154410278240572798212529760486194175299495715404041388676483273465955051585500691462820908116694532666624039932335800522707576921489347129545536846446769496259336182121091991670575692851885063989933112790205574491806431168647585393345093945647170671866031458346379273906660205055664562648457695665188188434999246586356395365389519550019456356531196878994100199013037030973586756264899646116091046280955676475099620647247026178580777808772406119672605318109211216876006445182156767669221643797875971181222039205406058242313113402663492693288768395707852041455188708989071237026949690799463719807725420868236012636721014695468631215150211499393936341980691196913007906917341436350152046677395665657059321789577819266219188109224083550991829615186498608359326661723130043046178182594403676712403907106707059302156513409320311403090537647307189522172800304853586006250682310140001445875382663987828815568344202498684798361307648329941078078241879720740684476955999280690891640833279126263589456062211437247556152722643993780033583345553416555208923536358758899133455401764070019690459600533811192314256961447018796601116842140979991130321196397379686847002372325945340728395148663426774563753627213458571654728256312139648738279799677881199563912735213894573440345344961826187889113180249688441903703149198998949563334603777969686932534597227050658124418649006503179893293593681511327536507025208675850823443939091550580414063349083596512453356797787317600116899349893281693597295714185333220146746394815416715262718137869686544211679007253094900286257260834049955202572765471403394609151341754152559638047530577686558285573079388136024402024162897785021990452608779659920855335584982370230170589146085467644316078347866498672866214306089121520491216165525935082044458578573967439164103591236380383623657775765014705445776925482230880668492242415272454083241267861074931802088600608162144552474002738619288546143483389707389443433529655978739719449479224299338784178110259333901976073574479974836468071043142013801942849335954116413533071192956737461950876069722018376866828496481125042599874893513882545250227790195582959491037702705230124445565837077520181742125381287658803927379068983831507377986566042012353437433534733449191245170052560745987781775473686288002222714998876420425400593115578089400951434936094288138554280890147919198050491981363014277838625093099547478405175813601499338875732167710323564573877899336477109793171504029721250023091133246674799409231482035108881413551482536059487273654807961570480435262579081999872145260903357075034159563510451756820490112985828190656180584687664049463604756387294716108896550983353689453312774617935757865078416452118698743301606543821969906113131336514311513050228892670288841300001000059316025509309803683998116319333025981125058440290899023500843772668755242936557063057960099171890596019032133131288184906722129646798254808911995757540869710341443589552497767895970316541136228114099478178908994186621398272147639635773419548209006322070424786781864834613385088612137662666700851761045770667717207306987909443441773413411214211463256247084054910445289234885583451949401473262493491404918666089269156089892579580829740872845531545036653213568479146465679522267159965356159836440017515544369765753999447126051245611699739048437169376927342137872349271454459326980922516650154564252382444984623946811360143169315466244293731905285869219945307444029935904934483182350098169240317715254066162457197491996666838451069233586432272718570874654913468530529147161200610235335411980016478634694149141278237971633901725947895178328815039973081917530766755931667314000408627037907612197168756792916030928766394673906642401726822628218854414287001044915346426705478719688765217767073281518983167133106530847507187787343945251562265638606976813350389312351661530874424711148215893548794166570011513986129181812822516618872107301205329221658986228503259757883540933345801762099265647529400780357936105293168763283544830594780498751382208570819058648357854923531500773027190931486519854571719591426752114216313348018106830760575434460845653799374853115250998054764971955628477405745807887978852067187046030550624325323734638767785749327203215182189828259330044029927923637215754669078031450700681012319377153045108838352547360267266559315074641535390628699091583447274333713106458096584405245266698722228419459743741023196581048046379736458923749075174140926245185018850963804224452251638946258826247638726883790022564387305605671545344803083465141590642621572123776526836195090791922782064810606263006494468978323048064625952302454466806878746181414146616148805773548331562937922286131801480348067839001389988312901798791167371543607312388293649710679010931090169479403061665796402942410495043525745372453637293462442308282511509375623105543229418740777068974948684504159501023979109441451831702397483485366148440571255206014720127182248256021437324216382386054232061409007805384491389996074955179779335613133163296830266612702212111032899016690158770869569153651556084491091580015430137328618183973189143925888869378814978543623090731862426791454329455271833366098318784188931176363601458939405911057805252557372497001070788572459871061489005231347510113015959363557868473956096715619704033077062190708620368058591980613320391425068747448055517478625040524823213636214808673845695727457034351407552667068835212132569185319868585950131888723103203513292002805914407553625857016058851251071321875077713478204304784583424605348284164361646195092471566385062434557767531105657044631200398186865650851622039348680636446856722650035165292998256768061327830733999106169065916064289287234680944643842328019176374534629721044278715197044760411164435750225545870547402425380964274451076453860702736162477772075386871065247561693394449645518759344301097556718302645338667677086758723860252160857924852231641821004984776267726647592460193343566624797004161174662855325609513835154270251888497074553153217073434279230103619278440627304666878364828328600462514834654439075855462314926901491600780833495883146126805580365590397454989885539223043324200231830685433633299902186266622692731534722043727037993261919637093358782226517026021020224077274895417240466243088985547813392350938917632688794785234288043916620616393838479643999426189055857616998913100456904879960483161841481007424464933801893613620861118381999277260469615150777802263992860920048803930371266872581328344284966502977327620561970764135834417190812873944249017761717594727919752074733618646968987206980295716261633663854475207407358640095270102169445633526412356803167206275441400978327725283321718171846916361515483692187925468131885053376263173153742618216663060587057303648317427349936787760872010584746487138370711174958115428133598695123228389974997400641195122167184180133422101862854076275764142370483213952913333005666285391062416960579853404053910718512369459397155296083549342032167429876779801311221145720432437358392936074156834532528452777840000791931375105029860473705680970668570400461020997948668053890350739100645235679335164744756203634619018844223175853034395145126246301449201522406702296569901440759407172070932289175085761619661712033205052894855801410221310137564851865590101960150317060040741094266820079063115508725216391823982403703718407542989338114372923165650457027096325031805881799183199326362044654082227165439781543988959652656509451423544103774972717668580717308668827212748648653594626361086926501762706411362998927195584300002260955617533513952313306812632857147709955214890542541097705263959660753015272715620662350556338170559180297726776444746855629343399424478536655772095278498744048696901885822391951223176458748045141988149104408876566642751053707025775392255798260032013123244035434437133368003422055857494642439817644409770609440727838601111698572830507890836767658950883925951937675521702539641381924200323971412347402581525183317545775884123331992948719658796953175081817832179035235805832840894078619675523663885953262036186340363551018601830342721333531394994459592883956132206600669043506126124485405672037047197823701502514996212166984981138150559946173653062676071660462089087532136241927276680562784456153817484914525975629404807854773244340123840688764261477451436104364832342523944498440298119932458030495081908390414809156751728555977185224097787268773418300565118324759011407071183676128367305576080820836856684567745355250865345018465627498347824568634971273597194841661100451668510887480010736205487284596886633403811528945012593428923150274344371525918790143617574917329983803369041712260095020988004343126068676906846287253117657661049848149539863864648240403944671915621309630245338289177607581986890109245280987994764743459187199106040403829919722447202066667531601575153455092941685966134826666226807452504549227916717467697250889949605170888667426344238902473371080356310339228958560833598502067331768923933941516895798552818020208727409730383757324295280323228217171440965373707652151461486597699659590321207266380544512197697788746459888539585500610728740461498025731448084453809072753142358990457348904189086240260869427230624924964997266753643177680638379079275278109878899976374094409441011512078080513449579412467155554013485241874242535969166051514870738161710819934924824648187597144944414665707870932178003031849290502884958526267242618977576277967519583937389362279693476943674681080060773071129022225456724899829413350252313640129492873233421196134899911973476294397156954638900281234751211523597917910891092182770066115582627417945077196978437684421981115220642889476943710736305806343941925848982521027768378702904851767364929191775175914214053710845315607681420764305414668611409761228774214139980522504326454422875010537200615786025145658372914149959811903931586188441646779622618566318646458367642919880636729263863107916221944418824752151159691699608382765601357170201081029442318909074737762966692024380293848577522235040122644593610602862988077271103099303834881628907582714690433582415761015578624863960177519440781541457127597463341857491691658307431657548095369579440657255354668081961218344694827875140675493468959900466625907491348237330630586335809890837877247058393972636471904966616981661028307966922498550965817248806148142169663188166087308562886687782385689495411300676244973289498262268781622723815628818977304833517308433170220338627787057801025803613581646165757684149406164453377956013188339486890696002668283578625035636136038687064593066489646280030943500254549891056259188015565686290970495052330033749250806206082004172969327652604447768478566619552354212067623135264319307526405083119549006169405462797500198727501460458846279900578559498822222389580029390667048244367404531685705807053178272784510972355802213845801928972706947548611137090348750005063174295759017942471510647563223420917350193986698495226866496001631599384412352962798637719695699761521877819770597094488570650198744502824216598736979710598886094589292937941665710004755666908751502006835613384601771210222593268821648480111141054548399499061505328982196372799740479631119332193790776108507162880177796134175992333944752862427446949363799248268312311800584514983217553265515455569104322039869346028457373781797640503943206865475892589979352564152684454536452018671619327762598747791158693335936516739661713888548500864245510068948804697308083519808540612167216989598582585450337940139823447525368268025397256216759312485292032449060055773783041966241319830294825229093415507497733372195576725975431065370713282997792657073987500761680407861923851553599979531899140058042831899487581879539930360924422424103566848987448204700619112916307864014748062198763197779212725310595656782236711727406596440893171221481645496079031413388158695733905944483868741879908163913472432880214052496779816025507623588760184185371957148624743500845662670903337669049738403613422209821802875515470143529322074385040370955872124716890150674789060138112437409644774520722470800886713948650610384504152047793366362232151085530721764717661501630215193678492557811501668139876510313996856399695745851099620201956169111083806229569760113623310541935885253613249550075688384703425888634467942665880302770533420589453502989916336120865242179761994243124280559938848877287840591783700869171318491432601150906206111281148175177553917273693786701819284816128848145440827048300563787749797547226966942694222433650660059627521753656921564467857930133625836640862695980262112336925801990051409723255406575823989528496804219641472336005251010917659447901780358724785236144803661304320320632470866456630736275934221318610077437723202189859125225366285228194461111046277564439761103352313344686248595224492788245183413498900544705071784007677800940680185884049642743649774444410627363076662244136106016566280665677208664516683334524697619781092146026558953050565939007309377280544265967851912477547459937540749721421307160398204913827483361774874344007628460882229747248414620793509518359617812023266841145494918326150488664354678374382906716915597819501634647806082184459802915945549190603852616813258839772499164180087590956435273885825707461022225495252708592027497459460772975432117147807845696224812512725308867443683454984727622779012022253255935125173409264276531766983454637396235217349025321686456612216541060302678278561502519278437285707786367494255384459902687349143462912181036707143587488922482300022392836357943592622311590384846269898206704434839243649228496562109698658711181873165248259374268879043973626789522102179123794104979439904784345360240275085470313023455657828338424220807930308657149105907616047208276212710097859160533204103282745082681924405293832397139797333952879222968868069763335762525003174844078810902564746326200147947214796561489658390530990270730575814677350772811596497129838911551092382842663163468480592011515215267943384205145325940095316530700361167763998989150214168901877124196448017730597371967494038009653582343711796325577672097806322770088272471873649830936511534288439204718262340453735690172158308560641116404921678922059984390389204041742771799455191827961250506053456451598276782294455850507507185152474035123582080772223293855367147489673985726056914676082300709685530485027841612534881486004828121162388492333233572780248178425826595727196165932887572935528646376016426473986946439631618269297639054642349432525840256555720480029149127786697662400604498095310057015564221950023414092736569515908784233020223852138469436495539341088642912664983027099846376561153088151047482816723321211760962122500438224424810260154936093351140362205860541821085498711509447584304166352009593579827431893084928455627629992187537104732350917396966557832256689012211902723095261516354676453713614295545485169136116053775649059840823461914351603570316585040148190341196598104885483064610213444024190481386900635066592866989240040821084815096700304954098489522945061204230544064983799501860313487549541314693264325474169363402685631733259674828694233040935413722983055268179980354814910538870658147014048019848580631795154782456323017046727100948543487191807087340399984216216116546354603367729540021602779288185943536146392362515654434342015535696821132921267957856295917703091298900718280308074949234827948699824351349273916771032788895244963464705792377236592588075559210715263332695318702305560741455612258059856702986896582807604837809215355481320155518038812079439738708005562848267928891476424038018875143299940214815540234950018670226353871655894856816099776804461318758868448837823521819200393418462572959728132622733700687964663007362688833153330273246602408770325745211147927296667859317606906334867733780958491802926911553943699528216531889665278061083515625502079937695997608747032299961552852516772197987774303472946363027567646799306523699790480350840896051515947908646171220895836256047088646271003491250267986777956113791715044236489152270773836393540266972583020657410460996807125314273434002244660086553133399149489467693570679888147378470995842418814520576985249658063144017996750182862428898449437127447518003371109957620194745008131771199223677373563434277788710817379922962430658584516578672418388994557109500723909193282787811057262778001477816590504596512098328801943133444712089319797068666741669737470727709257151555449774399945725285169308797508690898852959720026409597130285958106720394877137732972530172537998177191924376498072304457334126074517923113187504494943120621939844899660337724693239472188733835334198030935655320421257709574560998417225152435595682236049621692886534845355296412504221594262047501058548180389945673009498313488986815046759343991733563527934978122069439098931482805347997020457300233003307991835545537035997347803814747365571351268654782851779682372992319981739034454207305509268192683426995718583215803623142518350552597362448901586567208785884430867623325217768263203891669149118573633412217633366005846293866597577329040858890438770441866301383401216220683516439988543267775794392282190804251666329748476486943523475046246605789672819004880190408600170818457088505309697219116024258288899243679052815986511755922048286072933458060409502266201170645463598379617194695265742013185898526834662829327702901422169503642879099415255924926215526343983623463505618746205316445948182462171693663749079782460815119107151955072605347094356528841495687007677771247568724787711539746992023481111579778781791481665832154820333523252609527761376147009582930323605401889349148839633945255690083005504391753279905699940491003727523625438165516341909804572548726867520104759849539363461457166166770295126508075834437710788259704949194181573291669013194527510876550460712529296620901478428065626001326597190366709435745360551658285572595684278778241389551412185245931458485359454798798995517789316994685932432185467521307210269500007329576583415375339719096633053529903505229644840585627025759973851482896488584662616367159406531050669541018955117548629167520020040780959671049075332260420151117648221574614193038310842716540252797595327639999744559458636825619979172787432922757014228761557262631045288569384445157299703364791224652920523215692666714241052661325281101363668966370714721823491351906586656017485845534766564190740864418559578288045235396872492130781109195618026351223690502139427568291926107139338262097564424768768291112760478781607359735346566216978299463487725531592653158483440619856379909495732556002430989575345734642630906917803055695057016747505613441557447718107986153465083081687811590670151944918811832890067495392898994117705335955870476235767880150454179050822927247623289442307579995768012276662924191943919605692902629488879381608289039802770635945234125955883312480544098843886270233904578144975353683224142183597613536128077747391516771174411475470082156543343626671347025836619478437124117036839021182514203482206870645537653265506733114571637252399380202231122979633595837304412928615552138034407948421086966272043766007336223156973001070126996079795279098479670419883404632551761873113813977792743504999704101751566995553841531219973351218251487542887051297770677120446519889358371584078394333580608797309253706014357529439318138778685539285231577697368055578907830996363043854214510859740474620750986317797443187589174358144380456455815508743913102853124404423291561523301673676197764817982359029994032116550840120126684602070187191567223911798618803768931825287063731760470484011046281660789163272897212078199858601781619805076875916840488387453033892318062518228588541141124794639832987923944038128724095994367988297141810758892394223459494221815087559298274307501365518797310519288342812168068055886852097499125193218698309698358313291889302080111516597380176067533788431093437942304369364930749101625526929322749578875396956311537029065434529698544262004773748210565291437842636450194459415953577625703987449172507051119720776286831313299650046863016737131092915615903176697061805829583134198529847644596459059894357677844519601607432224411553002147341221587150468295814820597851223239020121589158525480797911826608525639465572345702581440596312977857241683610281479241195789622170221308421871327322974188878574009847875258036945095670876031681549969362569099021723687797317704084401373695396746950740085334115789200112618550136022825635801971418575472274481422670267427712544631809998936643600108743225247877666113778431153641583001675575946658971762383724301548002166608352492312455978322173969907515803850395592075094779472124315636278891441458441335069087348855816301295450240502655378533128566988216310266646142990372830791507199183744354867545692682749306342540019534903855038076728117931647150720439976530551165428833640716171716105211337543886594784536056829212014472609046413506526253649364790887461895387790816257847514478070538363699314465353508949010622424294484474466337468442718747751656785988412264496762678662158236847854940209623893684243112640074114770566130040895159043655260511075623409029058297591426422878963088164198570499543596664598122396633396581096650480406180556924266686923222897469935019087897986008607224251510604378149943037636592955645769762613366874143758842772332377100431417783214645079239826041809391469136707685947610994093482078620270443742519363721577821399300490969196236977882955308939775816971508718623416556335191740823516192030515575455843659392303766729680141694738414754878756956627534296909707415171093244685718934386207408520430384207886741939762918206948447545246409664325396181977257162084525354758679026669440048991752581270511140798802363849883669178832047505122800962918845113077922037400833165103739151295519225457229038364505133879831007445300502671379588938476552738080182441985641311311038579743552216877504283460757199043193167602287936840872226175140625083760058890470180294163791550731165927328673771065828276526005782360520669070923543827917950418094569852607857693316982554043841912573764260005659056332117896967521614479627513984840360343540499979080659398034039206450600751464075299383027478970975487812224423460197966016207495109884077089770215582781411407488417152635595483812067845280514852894715729603016638233658596349457353802903918520234849960219832252311982714879034602332156254555925559849814938626680724515234908717190830170288613253060568370255723738944910628532472852818548225460031427901943325809865473978520429675482713315980130964703589832210861601053421014857035016455231438874797837747045914384119773786596531860901619472412653232007166775800837808057859517447847158785240655987776967050836965172121982874633245265813691983387308005942121022013671339318779489002105964763550427049140185903541815762963189379382078099679847073039298076475965341303991140061024846419729900640937454737217135422010019649621874221962341434750182723797417720408574616279958955760785708991249835546761042770134808595864411652973632039646256218925586836848515851010467184637353285451186567060548659687011727132988354716018365167548509025200880421071108604874339612520647777471723009791136222767821479238151260841506228775962577856709722673769296563443465034097374050926504078567727714884333130665048620913305298672564306560627851458695950400823525396141637176808273548557171987512172352377047285239487737385697628110578003960033597846802817039723669840309014156392506309958065806341892481871098305809004382685425871118974588367284750480102254117374867852977353180156736609303862801685673627779331468422451514306203742377187028717936237433115282341385238000065212114121511765116067707351412407642698737337742677518184419992629693637873805167315773847309047732704267505913962487411586278436864134167872778213942158532766140286448449963228861384337075849709727907594848682319560467070212183394879828886391412566816085881734112896071719178851047567348737562441507225435167351018328417469816882099944242058902952842069692741555192916564395235169422973275681999291011286340246932833958089418602462075234235464771828087482598097203903451815187175285713604302426173400465612696102884189710607369839410928303906284096359315727555311751273974965810084488576466582082066901627659529526296543017363214022559155831768661064220041571226219947661952547690267850716497789041362620499774995038222926266355407475040976859541612162166662485808116718637047898252152569855686338909559088963586167570453014053255165684879248076111000517610671421097581357409352833419721171073962905131164031481953833670668151088508392617998187791018406854352041966471156108281175557418997005359460249080620921784839764742162930102312236396205191797097399362386760360906061421352175757887906185245946491478864771295555798184457270418899143078620475313393389118531386447850825470142357297572823507233763943963429979326582154842754395530136493445347641322835943741504855487633099762018125921714474194283053498645013086701048373382763619970255994940760935506841096912735509860279027622209974394103972066016936360947327359917368192583087262593475725046647181839874058347387052927158709808372054689250281918818848223336433155404110560257557522834040710219826810408370760361405850580789999666472049106998617338530282377378971231936973350238610215342630383734816478584661112448680153208754974978075663763835797263919243337376445664762747182105566179212394794571139164467017491465044599503488883350009908029164314227234325112729905180896079667981100637510573625008974427064726910780595145965220281758448968398091049564374572588668591354608111688083928193509261479321399695853359738987964555275497891446706308226360054849254153455304711155048154203504340127929398928542968706833835928409406752344825300647303200792853315690817217665554743478910685782170231490607627658874714922130266870917845506537669313441994882558670353824612519503597225023910482111926742371222511500390350661987269656834187065390149388651599162165251386130300926769571796587127102573132574189174784912216238483861141316820886369196798116171230798349446579512584658405066097535024205365053820845396470693945699248204855349729413072591847908306515534952552592451063235876922119874136574116828907934601078549589712498884846181652321601544886939628605251273053384237501513653475357612828704053202529452854523391744640967629684551603332920316929069249033017534167294858715962809842863375209884030487085081943442693341681127987343436306462514828085984058380389052006805557486604824507820740458321961147456281249528222557704267180389349209026213470004563453281399902277884312306948995314183011503679987243840031462474252599116488219489833266896486220409464151580608866896929225892629550737727114054852098381958331377575273791398046283639864030955760402809587105655292893299252927899715114716629075189450432927418649467176603811165733150979516864082363275666245907552037188582784701359961718698446090743814068935470618169759421075627218336642766706806811894334639237325633914797110286539308670220735813595751231742596071341423032848068839708530978625439042888393207197776704008053760558986305908987665341121377729627329068121534325272557925125263056779129916221140542283294364818474972845706801880513002950646742260975844648247208280710638017928884712133853682753667155398070972725475869902875237662852164612043406460254886033696591651985549405504446598493382978260514547866502926966448107789863306801165491209014795915594689162097809450254570923372414577751505877208649779803657840309545137177312135147703930496166983090211285742684264701226338973376263621555823836244222067049279908301656905208320493278799702226978015524602753371683904157300457575449896385431819965978211695727779588175267573712610669445311314256669594662655621446899504196124858923028436481033821433468685611730872840848252881466083044327302783428425137949032278056438957995060461119730266530877984346930057523680173770262978121668155829205999453352316665842932056086664209789370240318481030267990609842215885421231062139194472515366691138892177107871908666349034594134331159683876172807597505645012971629227176288315133098076818013867377308690541309259928870550721311621743577954882412435804438007854175146443845151933075565051124015483111585831210681670108234693337384438617125579041740198465117112246206201037143547033130026792256998652568448961004671454533018809856133979817851337256039075649156444150530310423067973301226840143299494098807439318434407186499456349055154580089374846026631457942966752020932999163751546054117200439846880296528290380662880610515945045343916274999923881639818387747430909204491958931369845442223092504385790351247843952760916036176083711232892611208761430945992259368738711840534778497225029709274327901690130786287340704861179915681577091262295343712631002942564490531070853356167428277115479681598990447973182493321204447920744972590706400450131736726488177764356156981360645117486079870030419486005287740989037555055195720362072758923770559313227003851080186690464561367811019242900917782038210076882523465865688152087771276657940468768731276936069703087665042432857161948939326390050682835076334254342762304755176442877315952179985444415528594111388820327566457383951119222983727103920858928912188696133384328190611532710685640161466698312968884058008045974424425566666721988300637240981227859841563726105680383522609873560913694652721804536079605150437084430270721510768089944986712356103154534837074039757513813299137085810133543264913317834568705822930525612131095029337793643633433518574754196553756362430515883142442164933665609957159875997828096035792568026122681101700113412235011493296569750391656845351771967095219291171383651998632604199498319255766995929193669386058415118422054834647797556656539804160483109852017265909028653231748442863201582868947354917791026634375778110118659184441258131321900843284924986754654466586699667221768414764071709137928761142916092725875135956314269056554047116763391426781649298746538782058421218042199644809488589756749262246272257190436928831055812159228605691342848746295205603298701322062154256500267846343380070445876225643881541836801264095915958909173478190378582813362810077492901126631630240690587243955205156653417227506090650129156045285220126372277984064819047878184837450648373679775217390525165872674983749977139998128355211833396731570040819697945672366883134327326967060015881573301277246465444889102187975632819273853304913996455107027466871885499336474783749558619659706127137276498069595275479121009769059048059158693929418779025703690131806000418525121804222106052755488097143223230070091891915888785547223520467114679343935194698768993444779125864495445276229974276031592375676720444591975831103924203036509442909647270463822731389101826316242120337187038199275102242441961508328953120998330212168717393541158475593945263797721684406638216121653377449523016962521647431815943841014562307391253326351180611265850873494708707876358276262889645961805618652699785891848712725996778879306411510737096639775260727861418070576289648375236217186257160912038514343127087635991515564967617511372710741447664490354809993648216510697626130565185754509368653881315341605742182654197166224886299395416657707998405243989326452817736393144539038592077766960735025507590210493237601909495089053973156909759363214909046755812169567220862339621751121826046608112483430634727308433966770926767830296252568817746460550830349146878273847211912985301680577957435444399190600961864742393993987324412266487633770180782743569408271765844013696462651017905229236769650988785633491227006636923594552953324550082112791562099800863848804190313144916747307994222169281528149328535272957933082921282024495680125236295928153938920925997984655730316196412417625301470534816216465249135700805729089689568615407106506564369791199723972289096784283611658018704296426198805774223196570376012891612657096482304119701786346511176366117045005001245986744327687134394158251720636750523916746085483642023504172967380206472117101386094400088030681007196167696992999563532096265971172332585433024439181539448047743460656587698747101199014908413914762569990514141188397225585309291591096318287095169023314478209672476484983647863389182166713382157264358125316695216342901052234596082332577934579343863313027848283160874934172726638755031392596442318948221761362161747423697664435595268533498173378787606892148686719354255614564082588106659762676692661737056848199759616746306468270471815276205479154518423223793012503834518215234465142491015343680499506247758981656950988971847117820568501468211972634717516194463822052664703092499658766485990026239824707469213582087340784317378757577636421528528347085633840396459476533157315864505582985681945007479504478334857651615863485740177618270369781943366668689781244915989998037811634808360383707074581595450192432914280681252590818217850045165125060903138697306053897016713390143994928206942931830529652902449738493278658054371106956367526754636057766348188014331451283431362333233678100790808375706363707062623994427341389245555599815776942249868051007136925820231142781673535765091963204187601060122622931779682304206991492609326473175123311915605591770231380741884864851674486895414473506914805013033410182667018708485204314515315441980356767814306186445874072396321298073590043235147677738891567457537279519421684501672786324021578212921751400840776882429873705391154397721062875686135132063474505712227095807148674673454162176139259632079223287342985506145716371625641815610994397261647653519196056199314835286622161786169258093006574593744177904354886052919100583961229449389850702192070285198050827211881747938191436590231987955734687963698830390735036010962030424029603076042373527312439278072461689627844346148915920848436967116797856031675690870748245903489674525637821105887944514507768257939082304834844961453399801708621957417165733948793151630626192696088956350703612323456029376976930550544931345398471182101457856130715899099362472292188900333284949564203565752034734049660936068342883397053539356295915441014909587161846126757700167217490928142417198466064014288306429308151251115195420468986704644593758721048168081925010077208602040316815467460019954796506238115510348236749373936130510743595246738362444962660239990991390690476179196922809155497726906903753387860021507506399315489570466841078517028077725290774037877044446249782913408261761952078802820743262306987502802820124044268268127029540587361658653910479765321980097990751679739667845227748814389523748107292986642387373809882785248938017742680270160737775584878890609668634887333676613528412972646391617253559621411184062495131883035227159082190698500391349062892764725269561400421790611207424709552014372624326633256590578647525295588409677348834651727623665663958747694070152038841180341813889209558601549803530760725396674122969208292980866474900091667566931958681487319370210866626291629455870118135848913885768502152938502421306308262565398768842119263120764333091979943221826697412941181860194376728040483616925545980331702535126550620215461098744521045593631956823342270057910599745934631851601278431533765492164974497107526120099471517010991082440306073561051245510718878880410025589802350507861002816173641728473892471525376752523836151809901808004326917007456657630989412581095046011674438877204006842686018711228075232642632316144581135594484810979896311573040933198723714908856776378568040658739733313460450180588528406741743316198688337984486839098793516113881862082438563696491393742064402788277628193809787731206494675325527236991019666854862025672056011546498560283023438238216094512837367570041244604146835478603496557320480590818066714299703966929736149950900493040889003985352349755827156947409638487799830116092417319671911690851643023722577691462509375053925617974591590823611495917231596985009583827197078502653647338800299466378198742658520787042729113998828522697977117715097971835245911872461935986707787013006171366584701919510986384394992847452041330729968924040599700783857208319124425119692829488641101788674666578866173856783440624082566489304156874522562448576769101333645064926123686369323969455724406356121387453786925344417577390903350747745209535457010281479342579576349072723450118407707726958961771944141765382916400888510878414415397402009156349598739114500229169804082099245952838527643993187086656744596570749642623321077575033931168300238519328072858694703120762576961853447614138607464955515577610392303337673284891759289491816565016379959598470055659443666027623503849560324910129124457152018168936281928428452827674520872500087524934890972193535012273700695792613536782736775906680899327914201177587364881398970714260597734268025338059481394479648318321821054112683366429454902849438814801402464864915921194342921402671339759570406740330361113118429840847966977352082055183015380738731154373859002264684800304427534511473357382047200970079707532426472223211329059355509659559743849660952576555191427928574153046452004730700278941157478931017597386567576907680880892778033491167385451954803464850793585465829982118672217203733438154425905880014503995010911919169209685104316730935244728577874201071591002248168070031331831473048110503853587195607623529904299342628291789638706370135689004647387837097495199295898957007715441416852976196983875522711585426314974849371450738444782516546438684228787584308563893363766223969113021715728551333328725453097575431145655992556668308714718413926579856187326526321582067492886742402215283500459801837635520993748310335638834582426442954497747284211657163809019549120815052670568001095198108968471346044329747699929957032900848440046404202851560587129579694162118360880994272040167454957965546316353220943585428976283337367298205399397028523870013022991193251432539913255234006794959367290912186844388785120655708321186918677762334051703168280829551695979476342292595921073514285012836613522535710509587680351528136238670006154185004518417534541096253866920360255064642308301200580450000372076588222386982470392155737374389241542734987802789200822744694917102607530552620405757127725429172745947543887417431981407104136175237762847988494529369470671901765915145608405074998351624222292823529381734114335481804158751770680613144508573383964138401576128385951198255819486706880311645639631817359426835555390582626034549286300340662796440872004185436103915945901653433439097347047875660918648325450281081649153298654483789667432565529593454143072576642544183905794195052267564626208874157357255580513887830225326993817518536941648715903579707301504825271208121676555619385258133060894197907260217870480200357091446257352080527265754914526896586778625524252304864063475819146629818620840430437853172209260706067473929711871410825307546065513080145327032786484919663373679908971930448561040622798138401806977514399977206834544985686844350188370867272098411311728833229330208714001518913710186626345742896198785018718376644071843293282729559701430771290427266957029783439422566289955967764549856974552387718009601205228543792490340425095862115549168887035973883883415368880709551241344971620647779665521223299349655553017882861620214702079221234609536210315681622943119080768460497809033224479863386321126044423845981004560068194353207406395715489147118530670875495059390737477543377439173244515992428521134833145096928194866414989294263122166145331673118819090131414030972617827646582975237923588890783824239696756072743309387460191393051540518258612926732908922211290353976829239627087982496995443951108159360895031771773857698273036083413999899265507602340043196928127405581721930602555744487559744781956268499098685336226519105221423435188710570144313522092842664756525250973985811977408237732150104545380577725507202003847446351256658383544860395261023801554570589945342765943112587034891613949880064122715693278195940619506932663237375093364269465912049519893153342837184904863387655798727767655714896178546614529354949757540391654896629059632784938748397568581607048203070807508410802375407517312363992807071904109154638160105442973279949517804770976856528898572896724964759389707613297408770391026609539808069424190168362557946532932402712016291349800972565056361787809925896564620637788229956916336453211566254424971124995901265802613662352161117861686325102797500920377958369074127869043709070739047492473054534918641433321931419679848852519272640743251775822359697924519414207313328012062274875278471099656147467224208290013160139498034547304861670382135257783930822961724152396036864234526754692884262054967377696489659045428744718946318175184001598888121398608272221859992884555256443800355726861860200006079179093038726119001720948041923165308243178771277301481744934649226324725599013110799822287394322873882388088252453181926799068030941644110876586606232712562146459216723199426707510003408685926346948815795588109812502012406587332670638997702788573960885523836380390486224935856198359340903061465493575617038757417326062885347529673432610335378553607900325662929394249623350784201561267677014388392532113161512563232535186712213126868526849284821361119962544965570711136749985132521231840393654158966178336801405201110907102855753564454276636481457548798613893030946835852846033523426486732930085095670255891528053671412712636195278571162600737059220033852555557155899113025635937272964559177618355889467980931700896375064041522742328600072443503297551765361483989376046620046550128422978283481083343117826070999639148063477052207310432699786580466290799909918635321773684595164708499811991552278247835229994346368840342779005752456026993471245507623409546437485960274028466247260128000687093672205185515155042176761576618470454158628657291620628475687757986571973489656771861779953917937569104382245724029391086009249540743263210142167523001438704259489807297073183682224434086824881461136642427748780428263182500448655784561921376776670342219246185858386991838122683115094377179976911800305279406921011152416605092209190347527218171849754074024365410610069351898288739014970705884413520445340704549088140036409285032135691308942373458072069578157449389281100860737674469874917498568393298294777514565455821279978596910641420891025784861892543386765512982566264166050990474664820138067446205289257864021642788375149207760426914839902162916819378325794355185257320568107972535164382754785095181681826637624469644550646278485498696069925773187423192904391863858999670625880083778109481016195725564530044977105120731045515976348744563350238865528996516892128803829811004505666908592185241907593893963530465950981026124169513847357141565893505039504116166610575701373569720911135640997325677820891310735844287574933389242480660641568352006422058834425984513869207380280984103378067525903153152559832756767840900707394863053575175728028599096819007619831741550058664315465024847624384794142835503715881396587151948159517871944992186045752761279058805481367051771371530381113738248267940421840121919492438263026710747305069946223855490925437220350859771384504021718730318844096204665660530562325810731451719357312297133096753272840039460933427570525879678114170092524689782310038291134842959147638531676044171511577381974632819514418281577727332611898136815245324124190496068230477851809708475742971410891246967945586743960039390114207225261618846118034154547487749457242723675772114010674417320303528142668274923415229097884554608886482571888499319673307294980769566833966216613924679374948927818057013966414695106721179653604468842960278008769343555751165254268326282386937174434893031002335932623627330884551188651740382336519677159871030961871931847395957621449200275968741175599990594367802851080806136091502876845906730623071788927028260727411997170596058602631440522201074074430221525814630317108188015107927833170727266731565715197216654556344467032501831320407537732751657239129671082670675600438650477510436719696595954983037602666700016294687001026927340616430784342865323722477991189630367041045897100802935488929424398337493146337647372466985709704567264654399545879298630807385024393069211072719945267539211932466312601649718090078611053937175326337410816695209133830476435883548701740637893579669122089360653929593602369362351380185256208699630664610054002660132665089928788220156639251565012080744568829015412763983546912854068781803523916477031234774979807482106800965668035543505687347618593761871942589486327615870861935998771067398970961887678209837849996411021442592174341054692276391114532226380754345345255065455421659434069668092645566154930495163067852568922355747924167304747527443004543907437289984185193009376738740876875593297168107708693403404452177127365458323327714515086720676544989540026812795963416883864322747210829939420840764411868802021134169305138995756689632441666998766255866152030205296745510209321944284257537844814629645027148728249258368078990022116149128612910322281637894601795930055439604556986709676636232884374319785364898228438766812664654405647160509717125444641229528575995857628777781715651742451815562356331945597310798753925785833669129220408477648654851244941524071043938427412920960833329093854517137072180304393344785558666102411426964906678024463129769201870866855895055638130711888009578579500268765484277661203828435603175173886765283111130214401076156223344350288776564679088157544392178416464884886545204942571542873052787926387438773204097076206486575520584682711406069643616470223404389847352482484728614115497624154341061508645595117866990134657225628674131895259651786932442423490494587564194924863739725182015629617414767123548744029223524513277781707537820111321801293447428393923300139506402784710493958852156491781696626135192786233825005990793188509877576188838070437912825708757173082512067488627810940378454373154852054700837270907347095563814785491656865268363756178812351745983908006078432235614896296420824843596275082387016654290858019066208272221082840654886851801109486631655150215582557895367835420092303360979498277512153964575166352649644413371884820445368216706112229759507566280595035762897369260299461020678071743825277608163772197219627685546391275132160343563563352344936221333652088944050791327734725457030622623839058767201605916945960254423680896303744539967530519337494170883905428689587957341790935442342439618234443656180411399326276179531887383785883800579112647604042896298678506956630892662668026618467389654731419784163326382824926873993645539237957949302543501723661182002949658630461863983197122080330404875956999333751181860792315276623119499893393424381616246426621920094794518757210768282410485856858487728703891779145421966444945969474135483547084300642201938099306361505778400619072400597419041506642778650732544958387777746349613939425991620053019476947720430639546195143128148949878517598754350009930479319974368328658130231494701077685578139957297139003110004592272098031294129508084659290076939789188223089152345531487435472956655379503866510716314727221815616644058759889426730010936061253949206168323303447410746108464313042015893061971590154340260727216307979298427300448671041627907413631533889912898424617746510472781682269865748766015581879134057038892797219973244742801673113030192415761730345447563091968923567154876736408102239289357092741108344566978132988783058835202046981332052149621250883042779538504975884956699099068580589906766670969730350931831758405961122017463303099396442963212983167579653576146605056111441531637127539598999501322473061034357467951794467341044711339131708527378499654255490904196255554299352552863314933837651934520906624096954887081593816753117438588771024938833228041800725141896203363027646754834154503988130390489545635891167688514203378730680739589694996178936051228080216827046177988709439164418528697953498460751184532298349926238912298929258645819637955111949813819431577274679861662957006921244511755729282958577387130507329317589499030334394203933447639384703710301396414851856292480367980614155650541298288247277726155251268968957355442175116159450483184348484418218297925241073003534102568755231565012288499066878807243539603864512171144426420498737706218208265229743506665908386480527420757699132632218361561656704604665075935756252714418556678023620394151096414128923716190639933976405816524542929503098695296396028305808007042763081413308876654283948931994197744247662986655984278587438012657358292107755444212415967417980390007965498532199873199100287338827607851603527490175897447165516638729425122724331888352765386044778922562675847648580715936521022332437372618219666183448160282565265128265324990367903885671210572762159510400445253544491096900793896657934288456555295776094192081797437085810594282783880801997868988370242288088603755696316401148846184847071653402287900244149273925254579958641792149396278549774190084100402353834686250779390717199525055330295892411914486893476840061931189741601881078287520407576385255079210128748346804883291347544337378862090804428841848195808347040191313693949726009976091711314760985488989032968975731263677033144421750049439537609748678507350080178825573362379078040633371344800014757941525017188463385185142136160971612125825870558857581713505251828049913512105244945028286274661953512559354490396862615140682436253626742058841278139984463827284284227554288741057331512887396731962591542163148143919599898679802573403514433951273841483093865244026842959916782532323955429952781095186230795097492077972893968840967640734267572493284168733115003660113232742868851359686831304971038326123073483954269966778002348281183322539095119297969851627898746619498391034504630443340423955081074228057104756563564024922552861467804903269279192094680140671254056124407508088578583357524005930443831214202410404652531787228936604468464884953727529535536726926318692508088239935456257284254047558955563337193958280610874423105096811469147007581031459788935507530649011905486690473388801564761960179602166048377545148790207551522431126347233440695641687627939805495447136647416971014769122758080446929960926474991530594039931441883716999566780596074252064124218650571087019064676723305068394805979914337640407951527546872056498327453054929291782068686243799635135343848514439081675837044627088119600040147827409836359781542667092792550280878670424767160777035894484246082356986693184762743523042760192740797163643708174215259012523081807690975826074730671353981796331836535531437079967952189960979344535036217614239417146284954998322153664262171353658515066674342915654714014997677872472239920173775691705713220057316942773289382038999784207148109088151115057958768502736127151199448334122623946669714866287299357925810173881591411853423663421872128022510013259725108530294153265807383670281328708027340697276001504568264515754517406737087470968445135004694177481695948290065839270773118345087046236883643567781529841773390173509205991767080828002082427714787040447394452371132225534358857618951407178330530538585577648869114658521769175472479705003800276983370265398144889256099125808540953428442561346220545508282262846700010298591598915534550033503793355278115626645339984984275557709457192698857876848553922589760577369394329273617656877263599535023766938403177664669164192046938333440375989885412234007365895858692910521147698048475048383107502707207597772692240118477107804117352290574851180586601739416693774907933873224029513154756658208289724841423680522496175385748444909529003376144527266770834803460558744146269372388077120826592192974138348005244283019336126374392224961163056597301961594877197906682545237369081936875032762380698061356974626324769254888897375867115662769508709083144809201379677508927165439743027007713527818431951563472567664549820306219931857003438591809573178827823657957505059616421827046926589746626595886733734358331388120365724123948548662539691032755861983160300573844829913018680451571844388750628046272662212211975719808195834334949117702362102865812334308946864372290529044282042241653808631645933189770996048182982597446416189240270056507646321555923069239598844319257896766074734464254984097803326596379485574699270590370359861354903315011980830815934747428207638567149767715731335713895521985709527081872178605837554854561597100714199871042675118517954460542336689686266038135539566655183305338212122058237964539939979488543353862639472292517216494254891618191177153277091313742770586470562169115740234376381521977418514695121395342293955776894654627780862152190968442155721387870551042584254263366972171648633070090846381690643964640268740588449979269638700071732437831144259682875192326191364018358318263971897884923276328445044653143317456715041524006875767666015519534614220691090158685849922358518891795055023921668088643011005924760391283181176330563905596320489060853946344268943795391893290711396192586748566686857136514856312782463485141054198960041227879437782431118786635093338786817285071357420560849200212132636243294485618042033006287481932635385165280982215942363754867251540234337191752248018735769919839432195883321084424166391372271418987418035969317361619071375167694082884364817357475823612581490719353046193380762252378431650826604084408618941117340621750967575076673601744781844731549131958094260569736669391431328397599008550260139810734745631107587458217938345903882277762976693791475790767259148382581950403256479827066257757410797064067101045965074207813154744406321350435675498153486378134078706077691596492527416889053361389469852701997200457169192897203595791906553006527191433779560264944370604699192292058554000797526156248249036716644036458749803806469289887292808575592186249786196836656215359409066361234071636812808011105321558626972646005184422880262925987726163226152087015748651645976033326264446981481855054018959253768972334718595843989455823707507076493227405563343825318735725821708536473899313217381651651913915707124552133576293923257391322144864229354905118587323954591709891153006672155646732133656516495300648427993405183922902760753245878622866722671806738651833706220083045770326659024947603455065037230381168608284669971060905126228567777552320811782005668507859424822284419437251000292479426493611863648293768432944510956282822224629864209161191252226155823253507820935538606140700748924732810152263278207979811453938512687112077698794576046718900468041908060815151314396485987020732127247824064747468269478791798339338865876622863364444101443789361579371736614680205454214756658128271045718494204426004173756215125334534675757057792712019711092189979726011849685660432656554281190771479919470066339588490277434493630432015481723013363714357735959003003771981628450038261800126767409931257743661707251183724111631447429896754115833148268116518708626386369438157714791007664622441960804811209701047590597119646372342181869953383719193247560757975061157088364555752863331665357701753442730436987186744526746989077105162219497475589449446024907160151636388742457995810718264058851727751306538843953457651795957309374999502467358822956948253888420043820291310708179194797258395302258822135203362636456526866353361998109946564643193285721166758995168771399119322549591337209905756342052104430968704082763199433344671472420340507152230556613274060516074599303137237053624613839107411619410964972796978433036847636906197847951074879218977241108347188126004789922114425279343951219720187488521217990970279435924890262140147194913330092722653297884720198231019305599253043750935941368375165133549304221151122638080988497549413052747679288497141982558670679651371378693877139061671544399929043222997927345347283044227903376415643001656528087059013681723215818944159987187794993369089057417893608846089299460214771057282488080725973364251608663382569525627989738785446084011951478555388042214254493957511094584665222950893092861226437569589873508648282414208540108678879959318415737678274774899728868580505887315404668084220269515859622766364414695781996219790030980423650085651335104056079138559493404668077018657825967429079677787363662253908301030891641135487198147656294736687718138334860504162358756309396730921938184660507401261197111299583991463084210874061336000099938381741926250918653533545404384280681361696569561086440299147220646319764260491465605314674456605752291190131554314688686914543463881014953789491769866797325670803931392766208542500855207931797306739203993003946017948043854002095769672486852279569103716480308851727333160870060981447988578999765302977681125737029977425290865321109951710497703493271686515398720009611342698875054395505273733451608750100572725356445597108471266426868285776412429111592193805534279168971747101013268103203241965255774511440730132454908624308114782272603183850141111883988484504926511161392758539092845915084008691287434793486327980829493059742880461519185363250633167139882684713556044581483361191465448365891445539338157298811498271928729133027175143619932399342972316079832259224945230227323953007075853441583182026088340276180749975508287965357955256235266020431253690061609766877080509404658927745958405005320484467141812668018366975907203826212358055511717728074457925015117993180500647995201731094443679804950033529611732627251849803397367858996246659422281049102011842892294994793946857771568313961182485866364336256141142063377507324871384472189784100193994509403601496250889293992645099546844233299680492308778443587039225692762741261892394159596721370625963814124724758326390315884980446393627122954263298764079494031365982608930340660203660128807930356440322520464973581973721758516065746097359329592411331360699270240523060829593546818038528089140445342720098586426159853963743965523243174940133608572741866497093050981909838930591347103266417297905380336679040928495302337446641471228777223897897062326247897611097788857291488967692068017298691346405201542677363359505653419891705160228699667685301820125702251162939133698137650403032302232579767199896499981654989628323715011263166467460704864609556968703122172619248731025552321148535407143984438297906776478276834354067078752610917763468033686215564231583635031847777673191175975049909138100533203886138021865761725815036120912474609289430831276606658209822649793216758067180807854742371320085875416542026674725376605061509990952671610116696569937607897593883891568218405189852058073377033176913720584693294275852700816422004971298964079595312371440353637371011975538957470580258051277361551304765658357968966590192631010280515379505799937094777003269356447998345811098111001021673131067397725879188917185134920416330086101264321824247856826890167165470117057084355995734280910872615227493223043101133805914637277330563517743133315816960972905631186683800999942027186746671694625163472527318746921982356256429756636804610019754755993644241751963202609756919568130360826686322581443190264851138043737764741015941675810322693285157491790515769288557144963979145407958202840979043921552041195137448989390482056991743708144088388118405879901832931688740975728327017732537778168824780607383832793382423322951161669895533272719209469815531876428091436703765788010752041214082725749091479216050859639264759561730078554714678120111486066649163613315714007051416966637369257410230373068726814426335093823771256508909994342711226422324619647589174562226781082907120114281317901915271489638183384523885256477473653041197141557585470723215908597698788690010629921552891457544067085453589400019428577271204616079862108529355365674245030174516367149304493693389723196812770561955221015448195956216252322809361218702942095425573763467957192136768849469459626664447576272361426975899442147698570705433795337691216954856087244564369196935551636759539193941170997326051475185373978502505026183021791224344346727332504160988303291360011663009171718968985387274579121491151779162478837523142219915060700207168282316643653535925338492533148048028833256672150562135333120652371004109199799273483736560064320974709420822558109077649610088952226145982041852416377732277793480816560495934442259134042542006690347900312316332385173842493774488970991592002096448508047412049325951310279545037943417828017248460947311388929918533151542257226719088277831655607161029468078120821999941194688272404665902448299752490939739646045557167451660014990571893583345330168226118086494846809543712507642570646649315251769818759161541729344560975662637386778947395786868479001572787738315268065064807502405320143470892628017173079084924587899763898452141436000712584463922102268575306106564884854929939889628582505624525169730314114372630279711213806890792745494394736769726312823393961789660631711027879112453016752575947349102510535767739044698786802679343540639150012568022990485622633495313969227533121299056374494759431160553507411586638288289576011233844691217315827834800808673062636222711673006893263961797687493067466809440587742908030858731539772902041072691412434647328611577819127940253279453289414643706035410724909192655257200730328072953031371166503531355132486309458765147561262899945762932544600802149837785516579935072107385366476030647621643789833312221556405691492086014030836983697606303024824501095557834395394073175875467478392866756237278774591691290357048771292033112624417620134157115921042845009965077904409219381287524073869610096363765458123844210636094780290664297363709035472081998489623864555662672374741133460832428957191003047211579106318914921940221994363201227307981285420739243949358615898627566839712768491319928048886872060419569140299297890108963576225925385371306533661224752328786301110927382441281062443720285704562865958236178333657422064257142451931509961972114313831155573600733563357776401864867769400387078571510349762110321685871616041156061241558814907058870172415536828505347684903658843123422174235689469439212266106476794531773092467354711775322997013851793499353793571387285063377640667149927567117966377402680411882741515075983149179594684920306493067228504482712007690892358447781777137156515028150023951332466584303177382764774300540091576468555874838457994899636485956025228286322118048309272617126874514840470339096853558106203867105106782318544593264506018184179073603184714882148845116651003802539809950759922865706409355063193049685360781335270511393444749441142182684085619780595942923953948328478606025444831377463370664535746569113159218095451583769341336051621522016237456445060456814810181999976931762268709611895760463263965830861711217065774395217125039189030836001107691785566804699067383004168642974330398886922233086224795585588510207300929959783348376038939213822542385387121156269878916128623868697624691459738837130544259492173745998752694539878734007474749272202528447216238788675550910239603958130666757860145172940636581743754505091186340665336748847210284484830747389491738830098136891977094508769774786173643105768572287485289945380091089420693928536433700896624212260563274147137076357051879056218938028778736974323909472789046189123695675498907330353534188989008923576324802511067534532133004425937201490834196450993740254966444093361317661792433640223794757126898107738238700737460772869960824238352547753824139639861393138630747149755163879759509854835464371009956393724463408926813654197428905767314536203555794732484345238988775389087826116808433668480308095373398245152845150791691602634270339364866772894334979970114285538268606570846525552115958455996076093534719225871876972217232404727209196226440480559556075555764243587156117510285146476931743776413537461519291004664964180512617953389668049140719629616407466260953389291122738888373848070218775266411540748533492758552343393303663715999045051869664824722865214503407034905604756381822947253521727219679231067637431953535987624479653031236806221960215625595010936440604572186856177278654998022448285906829350327056339751790496515695754585596175136524642705207703001464426648289456785201471753612306802249807928202963839549922657018028376997941369806021236074718694018799513768525228532017262091840921792621854822711365877377350036169579676917776843845180684450520408728487866770131967203256255682037080653262300247489736106512641592575885069075556761431926522486015210968905119602543457913444385245192315763585024881952297333894440774480666860326377750158193166604965558868720740790790576930210467269296681082720936295320114945816083261657891711211462217335893105752764689829791033956172654240106819908766512933718156352516910958779628719110300696545384659660180056627360076500123745346023107550816219046637404064237610042959535293575464672063407269115117614084835455003328938352944797379990939984106502940027509538229011071151485181110883199557468025561466785485919156394495239715814612404007835637365534976586336660664820956111893279853589056377072294013692635689742236485471653148535359125719911075208205679336970660699841237113192429427589183366913384862973733299803179638394108802544440692772504159378097501607462321968789277296171196235266926804134289733141633863620896618753520033202153251497938415001812512505414026426224926318130520773530240320538703011509671459477362251018731483053719585995737841674681696100382809715371002801523114519461625040874412230527425931866089059020807712638799016202384048397740576823206134352130291297914772259502155374534207738098377347599391251027965673566870428753813790471067219162142252054541737063696116987355036558111146725690422221869036457916597940594244528979590161783564855234788426337026141407954837284501592987632545546495744831930994667533227115004316438061806909592882704619015122634839323966771288779596488497647294272145067987843621581637086041876883353095739256491328012676265447056375629796408091054887468897334391203946128278197442337266809106459035626185013399869789010136398540888409910412748639749977001137468352100576617841978133206475499933366697970033181805692781601077295728076521134420093998684164036899925489816921048403860590931813154450636075093293901110412071782818433568637710245684161460884128440394476671211557436320731901170185500278533924038795888673744479536611012498946442590283720501342237402188216067477063086044368898290272280646793355393268700932583514656975739745593566397700019662198858197181005358249717942926566427638052795361696630161275151736103826200880693879231208136108097338207438054038254161215884636384411523610595523205146931067319953654317091855209438120777825862693688889270820178842450993044537191341602565159079286322143181051716165248811182164928717960887314403314445799759007746305167376406084249880323743042425147321769890002745356992941505939055810560292481593517141116680285250253633065812040229989089427244721643955225962233400010137476954262212484882776992863975998376290926624839801478255162125654662685696858365890546721398154550189445649368101420430209584262424951840032990265322475044990181463010052474209061659981067145072437473025452196987034819267260676307978904695891015828556828153900700564369901999677357260118678180189459683493247385582220560791135808029141990653959188144264363924070947444719255624708299631877743259050135987802818032802376248084249848939540136710013019344323635646004460681695679365134534314591470226031575942765183947361477273548009576392390252870072872859239763649417568877168623560762027120568569888097471405377937329685670341163178353769872225292794464071160638253340854786073971843181850562897514891816653464332246525432286603934887922726049047776212411889701660629716815564563341068580684353423399778750594750665484358012049891335244565652477572859398053754068850258958041267865415386278740095167467838658119780830212840742251148506721856591858140701295046046376916834628489310808075925681381115900904019111702813938877614722839281136747257939804994999404615236628834402144179423377747615427341182765466444176360603863988206202243323440649635661874517223232290740506203623130771472844254010851605850638588258814654003476322678048443281958625620355211530632160713397486873101244477985970162126463695138263542447983790959594117559854941417814302018437827811730209752495028219020076197687320084817159156119193005421834133459384386019367800708086476712443833381043228599355473973741039580133818798929640489006357216867110135952395817044138324986399572768306352682780814688507068589427916864735830147325965329967255661908366261983794871530214543560266426157855969710393392958979831398440917298201541501046304561510685590680881182006995508750736919391457662302954550424995543975907300812231122006931793574506483773978495341935237097784250643638007185444378414632651481511503527225958134776519519719160926063555838177646373642980645418483860509086064000332317830920347194579104764378338052882918127075678379119288964680222684238084411156527838076588872993475058736424039327332327921470537964502662952237992468316959496643681652481373985022594307947645948683776692886036248805096499756249677901758419659139278919636610768923266882741807103953032648790651365787960764704029185638886987012530427079820479147944965264343919543197119937594343472863162025852119733088657582825356084120983529533554392276683430201844332978128585616279021232034711494509864129601648754045054236356469434241491435937757016966638637060924728866446580271824754891298635136836200553686338580676252083897046537567580472250058629055333837551864014425486739355327838495095083444734422911027653793789657374769098523496257609085808469922345236535913713587656702144654916976475257695548894378051699433245578763389692613041516042265825781126761469755845620847989997845824604508470645143904440332492594581716087210143977879711285956389436983339357197828575202283120389727482834506670858433107386226670948597943382901433355636048492493937351746492863119873699762637501114446673074637987315783876604021495869091546041615510658392865792782237778664278648984949199181505106464714009584208366827202100909937634956427309660077393244990534134818913683085832688044620706682256405767683527260486509496639488849104004989080861996693940070402320073375910355179940002730162869156948794602364943880107522877976234237189961833728795647335150488130899627143828844982915557968718379961727312605673597852659473788231055329834726740817425496247384991076905640564629801075354459459313221583292811815821514345143078352806615113717994183576197520886668086040198677214056860065811271976366393078207291225897999203572335791525221927573852793814039975344707635301619674551378069365943508479412995383120373237128875672155552217054903895291710931826874361752812614725925534183900104287152223137485391587515663951971456385517628292865581933604308181968573220958005931040217992584521988410580329785008286441318947420350318275006671396400771624069029263240965220007953122942287215889160145803452793610673846896611077495802723284292283923019582400177469049967547694822332988614702125030278971668808882618695640203244723451326542988764662990106396075437252715781989578206500116353984392614019637400983804037464283718845639586584370801340170664677876649509032001318661364485585719127814072011937743981110273447544071920846942019286858064648554840432907875817438612135043669573313578442306416085726432527464219115886128544923222346522783763974221202263189316928597473588015528220457830793578071421877171553264708214470629450898675436441169371163913628867772286755232679920146621720617580469799514841393465514011606067897218401713534835029825336199141214660560462714797649955602282529862941371217406172337198932373097116259955137878516623154156394827483059511986771484172257746477578294039056546024224502383210424365149476768468635314625878893337890092469411962277432841874949711517885169837896182470756741805911983947200597952966205165595148353357922034554077333746786124052246464769191130848821165559601542957618252025837193065849816543983104657208409641916407842822006509021931574624917707225231282503262311086811763037857019150887361668862528970810046006120120549352022000623676727555671013056524995841230215374119064531155382138016419298293708185689627543873689989646923957203552406089770366741608715355145047494048662476555737614613941475289201187395628687770000611576887746098887449800315263835214676254921822846435149710379855075942294224101798827706329142791498824201126418886701987906904905288100969563657657856598553011724491181833186564024422993710240142815362121729599325185506834381292826762543116601881045622192710099532481238810422284144185080962457431813946441246696239584523073541166863565555523982738238001954993830154349334171868811525943178489388531538832693431505545931729036052086643468816676216349107389366323639531821609770098603347885975404678185358972696545215514192861195115291330033067154837537474223175804820162241296803043530436253855438923954664369669039475492454664549316635197965339478980698060343651861482853871392566929074651098876585201397805725036793537191160738773441720524370636537035360276626814640072825565622313679598060761414005451179724614024652355146808245643435684691630720758415426691368894502613163106570716906994794356968151307808229774517893548117541155773207947980703807354901742220480304623306890975516439571200124448166031562016482220253483647657073800083018269956364923899072701864890356361436093004571051101581375191882037799794772840978403823553917482475208000495823835011632152809192181958881555675681476640221137872355237198907009714047761564757776942961621905120878022091127539301115340885331995924223065749277114700280765950058626004898994075439052368647507154591286431509502528020675966972041643226099234021674376979449543153975405523041612747333820156401951755291758981642415311137421658458176027347078994783614078644194486003049372918912059956441470710957958332646361517859408456427418261915741395581430080880405431776356607996873063625036129450216582282895542209194082799582504572888347702357335783737292493153819926059333015723713954631798026641838345662320082370548183616011136305148097325289750867045727236687809731563273129848667954332198893478259086076883882097424424880499871476688502213265101117364419087673114928796265006770888442712528841903147077636037112227562375350822676070052661371824206906326193895349105351205433133173927934499353094618357753183968490906729391461275150566790428266772566666919846245134527070569438249865114169027058183924826847451551380622443500059474380815640976991455734454806891615197090176139508111347013328360000468142878948535011656169567218285278166153990873262817973123228179498023724978587154599050692528719962814475908849935764060799752516582665347926591119376183697770188493122404389621948625514563763861871415247863850631080986931809493061931332133003142812849631791718865566005658385759221971007793815206992471370064806814517479439709595434603151952323912095069050861316316677074532129484297755263981490869024837328623079425369894180629854749771045186289111185703229179470137572677773734855692718922507618788343682074714956032873999112319234430258354147638914887271249178156365892746627304194544116720284170426221850402990979425727824951161457715066005087831727381747453988478251719444163002822848609389704671262173960770460790346293617928168792167302356591455514298984024888126362931860703263921608809213646980944645815921893489366238602627119823995979791917047857036800003587029246430862168833787866756309891788868234218555170733217230394465307423731261135000761686494357417796676367410137622169410685430427767361110897187623531488063624050110966021312867029653880829142639401931139702647029052137821377683179373001940533592783285493829473906947468326071286878151978132616388816323379094448914999294979685120916644561542891236873567897253961072247251870762446613647602632494681233657254436814773159379720471700182400944611042197177134916303009336144090650320293941466687090788743764784557595805967642044561575537247810190043461095918823997569435085775572878829271463430025818948668083101920899768672992743541609962105890255603562729530265530266790351025448850718406816144936313301612201714093699154742707476246744548403618689680127525834596311359559166772558428446996759853098608940490185765698494580056389657752773152026478081591888863517906865807128446289246691533813183396190462287744799961280665499660789907915153348147837384665683870698584555141132288728946796312155407635704071189923332894132633940421483025136709976601671349657327296918726937817789411192155259969082083819732741862995645382232391647400136983716337342673386342466166938192809041939116536205562233115280796636511585719492127853426955979733277459510163105104626412268210054927145836095694452375665989164708308864953772938527071319264228032775024330485670706538908839369698899920399054795124154849171151282771019620840107002651144244442018835456035969481388826641729515793548126353042874136578375839371267624065546195519621320108288454237658621202896859507746040984896626322721383377601697921008355775522499211904354779728654406439953567933325823050911230525249716823525883852795279297637138097111193149933561600348589677486172888366677524697169172785296876052628428168578084062004706083270022157717636210935740964221708325892656103383549327897970513414433126960971555361068780953716317327954270286575538818452745578342943172697867547548521654297553838396454392871031503764859305006664803524339809634553801830235868200036586206492922194068073125133082151834112969346182094822765213162615627368371561615953493770723934090714555755550324779686061035675096321963730916373723220472193722671931602742972962478122227701009351716359198313873555259505555647971054119944273534853903750719022892912930714743923975855163887641178580444295651238995124241497995737870622548572071431147637039249711472475239008338820481223254798520890350746641136972829700080217302154037543952775487136320189684353849589190373533316866627202941089260393244897931061009518998352146463332141401054175824030497698775100266513822981801913921537417892184919608767467318084690861058123010572105962713959875716695744738410354660793087728755117169413169213076004049359404875070737428863040831692578081125240716397737553897516529455839185023310950623121332660444971479168564911033754753729806463118046385852767465132842274786909003940687717163204790999801709678756142464939821484462939667141287603866677353598625870690065491162300069803886684741181542391260886213858563850982617363891833414678153904907731990764097234896249804647803122561427264607036022982541628522109480851266523234936558000285791314073250338824288017886538108373790441721807735205826946956033362960227145536839118537235287472242832319230029795743004355821947158905212538666711966305697004821809979385748971176475149834089068960081318103416093686243713938000318087068894799163358655709086313352805881631222836985133373306555808810480803964355297766398600394706342177006083020423556461033586793476790605840439489156358178040814304861620030285813342077866473315519190571827856163592962426150061232576785533849656417403739834588101561208574550659662408299596296161975558371480903424540151449494575781099466291889987665529676434425014162470663762910000550215227483292456081862098578416848672582195748683435118123769718513313677178443573673865919962687574417638475872946288000443305184022160107292089675070103270474451156075328336916416661657688450384140415720028631688528252066065241926562329468937650758753556973124820718287666243961488690588583415366244543649916945481463861951569627805449594560436846316538516003987287741340505712136072359927080307070590931933711979375430050490777323978375963286452102126542898261825997526317947925367998500115993708666071184014606333314322067145696730275544762406205154687121373610656185002184119475112306580454012796935678313246522491007692730795797217122606906327955260388117699552161884557363222723339311358589759182340963255533657128089163051449342111473600609986510696831664038114041963761074872017674676121322611018193923860055336208000977806901219161463097181375311483846235729497078403639474559413556951392445423203647270247245845872514585709720504396787733475008689977776486134914304493839145088391702337832643189170174603066456381282570772979301187505070952593081915024547034849970771905277483422023855939678883012286199468015882984407772555002447602196878519500953944106122794638737736389835379770275664987765000972054381668495983966587042548582088401258291652947540375181412061925221608078341029065617759088028496195063198781526742659848224985711252705821990451634410375309765873318201915459851185587875967998178975178089148589982821093101992899582262742281914761913757803017310701776457846206189100113118217336145480261596631601586212176246007340743244357405450112103044349745904414617621635602599370960961951211757302444478841298243940009274739274890628965108417111336705197281183763692269721740805815207759044832584956897521742582750343929968759045827412515050754203603177258405624768976357173140601834373344853987256525316014999266605507383258181446403129461465175453919572322568608946816865951912607155971104956867690036470374376869271113463988256169324134644481953588964246920778644544819362984068674102173750682247260910619651735832423970468464479723642547438308716707234883472669384732363781640867380217458262404535526653405692489221584655993154307075426687600226140755611782104808705553146393539534026448089440633944854399249773383015951519459811392651109139348644687511314531749891354092929112607827533044272558308659999358292339250460214493462646881149495447978052428686341716050158340487355463803482708593034096880801675592922378504685428165549854126603206956328102651269551412267945433413621954894597781193285137647597780407885149090485250364757073074358071684182237895582985292664294307587171662176007359756594240921691067947363510652645287443015754456254700106163533126197877030488297526213369120712757744578084792384291880178768868011518398360337159180332729911932973380192734637855695506542239122716191241533092768683750205965937178754885197904390224647278310008702837664366260402610479315537712867246913493644955220127615283717890136785447565649819040178803519648025254858137106594537036284158338956417207342487088618389419942816674817241145460068474885721898929811321301962554280238977673415781159595396323644344730231597946206489591234000820404181861054929237943911117553817171196322408661943637994270950914464850935015129906884070216036430466510781658249332888790477133793978142730566409613269948235596323931806320563666468755435197272451941215514457890526243500277371308391043802816323907986856250094551891709144867262034376094463442078821642002619997372896527712864339479761202673116507688806764687464359958741780584669248828693997815414905590581629186101390795290384053395372185463407729487644148224766782868584697629544188154643685439071802237134026291129251442730501227833474447939739388974197984385398163430957626167314828911238298071124931653902751687285783377030642394799561589247813838065354499356369593164891741328310650539953915416156767474373092225179492314164111980337265167155461036217406504648453070222630792177886110160259841153270994257478360880857514224007716513277927508105348381189612857195454809677458424914885123443883536263045322384318142966378045202231930409774259181208353756675591362926822480029165023094574202842167301780551323920490215878509052173482716921956498531776909162376206384897753994525090833162744241424839767998541231164420171028634128599766199589982865371051546078279455114679191951712934166406939046555206814823284179559317787644942483025819229632544511861354972426377579109992355576095343628126192959215513904875224304956596452071517075438594805506898122874137889846550395316530925502838473023379675884010724838072677271520666128737427513007477917510310175007676301181551857922108816018355898650923623003833968173489301823490491589108522541098212191461902377738623075505890458897961953159093750940073211336417167490701981800902437849510379173480799717026968832931373343227051684171482900890659091101067274649100651468979314658460498031385307190323536343571932648925363693495290483882949853122374088330691424836710687294982162142265713265400394583631933250338266161081162416638418033548583232416062281569781412930890378428246214618351314212773362341224874967076106490933425646166200463699436400090515884985332888551643584361674038830855496737517379699529452188749304643714156674039847795228582932622890645497656197721024684346058676577348547734948234522740962318571340985881936982640360345038538276072100894091927371582980089665237218317276777885690240908442484279633449285928907974667429381644857838667467249150264399270920776198133440736140025048230985621559883303899618309618149807580311091325658997623986074953485361289810912754874103078425919918967850473098870229641014031426541661163712803723162671551170257983836897576653979852524683340909995350552351716787689404096078603280789013927376259399784911236408498127458505504463500711993562139168886670049050445727212909630602039712437967365100689521285888405053527930449569131709004410932593908156001702379300282882073945788441755721848477116454472174403924123909298045305398897801551965453917434442031453387470614979224159703556174951680179488644001060961050014292484904961550830506149775176966366429777403817766367377931673450049582494142466278124315350775256879007057352943823509736673761824031434014109111613141378246964704908975910620492040970079951609244464233690583089095704305440237072461624029030984966433571550093213802120868017183020935747056003206538654436575721164108790175191573696476908963746245846539845746745644781454898869080344426489957008774384803563977287356583541078185958595910693648239200906903506472436136204366323289646756251855146059409759344821618599590234120788526746477559839119794372773037257853885232964888554933412319528110427930226220221640948126312291377431687195874378516349397188591838595114714190511392367467125632547895696263652466973857951473807412227283629598110183793388157010805571844812781620831715043413890745126910310031284407678847676253537153942996121457368547496065629681970454759297766234054307853051895069923211010103786425773134706261473748467535611935426061933640413997570807027744034301608385093733721840811408040227952035067083576951153328515327369517109939680158674569119380374606020583875090554766062252378033058446914319028779396838983952126771005812588215168405583908815754340725893925490053397970009388449508612524658220971156148203452721844212114363693171818239418644729114815564255903626821657536690585622816769990305524126709865577640348841447927015748514403511202490241632277267659161972147681850147909584911221227523448333930147156723560220168881418542260941923550953485911439159046429389177352720677543135319711304415355579962015158735665613444939627853115420061757720707919199336796828849839119733307854055289150956442315562741830877863629533153290586103662139743707991376669574907322426577755825554895113502122266924589951794262514346705643296608381103721186918169118651262903920395851396435021687377234828938086507765887193013959865827753060333938703704921357419933328258895155846349118967616421717506051956716887013366697620651563594849453087691227424245062556449253977391403098436815015679963890068677465982501901229976079191271508387677065457789368587062154015254581703381534417645164867423207428325419975338133832727858681646847061019030712332295966245849831750979006104413031808940624630961163637948808406455679691260097524126334265161720739104817368711869513458762396766026167184001565008331502632016516948634788251590313497279711688376608529221673026894511434582227409897550142430237988846276473097696958046300483013259533140677825680733200382430103941329456424613489763623011311500975738255912804709632197973211083439744339399032245412709623467681341912977719660730414095684273039972568779758067663572786502290927858486980854346558853283515084648665177353068831811801625445314489442914157935572946956555258881559161857735439964716628990763182192432566304946105438284429970506274656224233646703878495925475539450874228057710277477585165282581544338010934703072774221812767347898741225686356414309730100534599415220583944176616133942843880223215683640318168027060671567227067663907381440205739654440913421921476024982330489795517354817067086012154739960723457167373746686416336941906920287368906037838831907560342803419969904721377238267795884467455232864593417259072898024163196142660905563323877724918787217780278369574496385362527148972614176425773408104811330126319655455997997356070373653727774552624613061585051800834910658571879369087093400488865423853422666646013246675364527425574691589130899130960574872246313622483482870799834022631692311945785009710583271194815677648320355718339633413713751612379817637090007381439905853654369066516952947003637454213570857510947370759588284054829834995569921988591893277224108712405829391482094213020541019216394517222370851933976012313234789994162070382992710243909134024635224875992983104849244156529873589945327402253173662208531497418846884115399599355489788091410351713161306491270569687706717562698432697897867097893967734031531381552048052909819531666292018562899480126675761533787262919179767679386561302902458643747072108715729014898928335642766142129378161431897578529675055472303401368334332074960266004484672529213824988378754955878097028839770357036141395892843546683441443170722054613664803232466239257840938264163361673667702922134020293505210454738137894153947947834162483332585041833338534241199049925701646778069647671890872473238599936651247003888483046453682172298755944869155128189819959733272344650415413104377657194144556929076509727165837680558668983824332824746391366837422739481121546640954075099830800601064727886502839309115277240883079100349082300443733768998658272380342313104464706772584316356692524797054986127557923483945628256585069696718755319636849944898489737992641890369295057240214439442235022536251246506485464047519733225609801278623976281279777468730151593999958130705485167419761330673309335433658578160521560113940801288084464347787919600812832004452807819276861879167684008124547627380820560645576890912833271443468395192163664942730381341746458340232851401950752035872077571394942153489869042857148694489226224723701607612876018279296478679904655116577269768458883906532980846976918842534068160482840850540327380853699855657664221276900697684247729597610442868515624121647348990039604380458042385345971864270722264505576171700085294933019361780627648342237556973524178673197337442788563078705191965794984366737843099004515033657580498456010969590539980932045497564596386734455076014164430652165295425019475418637088944855760497182690758394479233485516306235201777923222895067410966822026577550123673843715656842209315121683060482806683287611677622983682864145521167782219404741435851673225009981556703856517117334675730113666536959415619631802761502293807744648413057312042192169905419878793132938806222479094233791164496407239839960736678386209935012308735004741165598409405753845447976178190083094361981117141164497295654211369444369014937533895482048785024018586831468182322235145343482733004578497872972523330158572426726528374738657364717867475401327172091607322111375112862268943412390000403021755259555683700855618604713034087992959681466406076461934315859055439019577359854744308571588307110492174060270494508344608470103523921021052751791814674089284497603578683106652906116454261280899898742971084821248401576182185347086591244930641506521478698693032306251107979501874112192214572553020037480870994647874538971511053804676957416098078828308259195374582852691923038255511681445769134926409264643234533908272420033642389561840776766762884911644995719637859584348619909518723626718938580891587653019273140170955543610676394318980006700590271449528322836580411701789498801278121166095560900544277937854516950822381485305070343795761992871656353067966595975198233209359231665254086500084954974177495899312398583830002172694065497692427369788684803276571248908002014060618110390719466546554338320574023620351740752569457806364283401091997622560498528691088824189788480654385932051560219755196397817686890590194618841601847425519788032239209716153048806899014752178983488691901254935999628561565273753593262784990443558595576820057501071693942002201378632698701278062290171304850596684652189010589761610666093461845868063626838350687179650883055191663004954963728573759119557791951186185315850781582000550181877450693623325231613409212483278026243563641559418522558638356633491998199297455123194063191965763377474635411139219607671427175339145362014591552450153434053921449966688781830825252793930184507195068902504429755513260447423831036234428548196810533573817574398365085735419290932648276219517881929566145504214502006418208387534045359675963928628276216092864318911437769760846088095239101988356030222921645929287002693259296314217350644147026333286424695816192316216512414393513943784635313048373613769643550344075217604682354488394759270514974953667425570545181984640977368800154246416157363329814810707471834472465815171591341397862264744813303044502162617099839194496925698841216080377382559796390998623027867619394746027435032176888825100842475466085709140505324359736160111114222102000140060755012954191639278265337708633500367266523731314309375867646499983837987580853131520993898203481363271763333535019547070849816752885613850867013942581061875489651133959571805428394122982833611538157059036549395931951831959655622178300262388869320033325719880239683344983179807771324622496703504102231158905472524710775467115540751251940671283278060872533436172750653353448291918400507966130064645736098426452576995166459837083673632532838698302659195707034832566238756693307518607800786337645747172540669326700499790212235580713942653856019354749058276993807655158729061999982190270984955040371072151821513022078622107063289950020079584342780084658755753741796489079661703685997918294770698031553632299733763903976427282018304011982635746773177410975155421299842226593884131259210517444449405072904879187123662471878717030769597201028477456397766314488350118325015981155304878525462804715709593029428597064261850496529176918142061939885196016374637411234466091540201147431753549119875011946189151881021709696208391725622517469406194337673261766424726453640501565746216716423188883095174237561766191844395958414425960276785037111653692511057753928019153875187468958229921446044037943545394152715128987296346556975611102942499145678321547985642308653482676943294603557020420924107748492587700279019321769913991353345061043130034655960088801737058825884495580306910345092068589113092144229698760664016052813631512072090681522693612129571054247828505310285200260298728708887047952904688435815816805400222583350693556564383938443152697303465876900729750156908149471594032954282486496399520631719211425707421294384393039774599380432610360941799346288068441557450412047180092334750230520044615769868297207422500053942650576635541220112524051685578410321631550195154234434868238451724228575670368921414772702854026284162901780884599885552215219870093295520762285171257569389284524766262437042966445189721631719019865616848061944412440367482522984738590747901131092408623605863236082503420236974387399049279604258378261822186270167261291392991519188062928421490086576707430040985430066625142486686275530658720225034966043313243135226577745285231289819770044144164634762408552869687438061565846131322333239592416688243264288350235527907514971177610674207926642315776342819975194721781056651870792550294553514178458264226641724543319788429062227737027139984252648334378389237463679647360730653030310805255197541393708448545717906784597456399313565790913189551259374612433316304693853150053000412001125491781844757093427818506508475387818738241080501600413224861327838155938480520052046556987691348610506648259285579799459108329786023276709030295598036490417518288716956803814088615968990965031879648324252122659366715101509699018067085719653770383530948952437369912951510143563042005334396744727715637104541408580199856124824414384862759087095311978907351272055104703527123831369622736552115922098184512023485175688155105306793788954082933784654181833066163336710371482610469972727351911856827451996219179212174826616116551466928638056904338054988811959244116667782990561333298416220099177031571268321599267401153115610588262315453964700681319734018053828014068066744935749292942572325819638291927805214140397955761167270029476674580685542217073249026010835382083512057348130584570409756399343840500072790105854540519056097083816731729362234380897693428442777598904469657547679758087739740907070345110895492335023288583794165229001309714460085549013687386111855854735345275033594530464313771737807737787504214237148769110418657438830338718714595412147520323407048157006643037307286136727134690723633468652743953322769567979952823103558075238870272681920174349909605489129826087412625202482682436387805906045090335414658672064843016561538833392893750058762074391140417023959088006314488474899435397381368276841709041833478877676854544657039119935364281914152394749791301161562452960365738084914549794099944316058642566160513864555348322596254383506532012213891730237155849414688220200917589614578952160285809804403615655898510205859730084160700667634223366548022201764836676617571782784753495738692401178368769209744064327169290656948055892106291967372942472996908458796119341269558370781751329238190779942110357691350291702524542423131929453137686170900548709938078715254892910402548097768389373484747271472723099019807271031079435527735567059270509448929734030568394016058852176590328537694270477985393848920652094931532279087194213202980830179028279731109035364326491175792070186463199247321257352575918956562344323164203447425506710133845790163696019045927681610944657018071354620616341761220254047129763035014980383317250815613370268107577932651821456520179541544621284643921590552741879594664888430122712756695744364229924900113437584051447096557592065090440647961779941888917702472765074675700752374426006286906995947944693008593297601114366794954413270089622290179210286542252602216662708038772773848877624720305149468148716284630419411206122480265060235652441383760628499196758904145530924803159545770484163866490760855198908017456243444744983310576960995541085365507846829658219828272156694568299552407533307915891502354269859917141108768680141865786706468403843554238059511621077782101130349222891845934509572633298752252040045620138771066732074520108598260140538416881577716655624437476246903457499058634164115052585107791970113066853421787328155095966461244345051677377015046460559944818327451634184623858910499905674888533965927484980535553060528469734047273892501845811584005995404348450805669915700386785244637663194061538431426385569193562147316717309627726372437075998141540139517555756723934013682226321726146696422993006051068222299273022804612694870081637119190215407442263966895309852561376648924836189512875844468370919254122971452584022408329704143348036278765019931202710259018460470137416544850891573763157035532474226411116032283131645378813802585741984234977046191955392435071977164384043376065607820968771610643115812528458176617599481233749799894070832147441503447461378681852190426633447220313713554301747331643530316355504274206204087742706665263141970862168749850236629537243565187652711460647399007170564008551835213209645952771370896212273240523832832828822852992197065279044441290525889488006637810814871810822528178123715765516563139215855801244754659795095757012120711123319885978748620674561661510091611899033197579358394264839572581402626915868624017587556224326877056092151749888853098452043036231193868667330994643858178898245491034457022045012075567381001851938972259703554694760158043013388338484903954293013689309654527845308119071820254976013965135057580451144925755296029758026221400935086612011681583959788053531642447558507940337455746835869584999769442989201706564502363482942425360268245572429454277338507673224840754870335760390008182504217063068859050592544124875681440206426500579401566823443691737283140011711216933345633019553065859217056954161933785028753667171529303238485417494475946520323798127681862715071855048779426340951424151474490849240650662676522763137961185240991283453753356457935407551593969203442025109662414051384852332597467914921522795121966405360409289303270470380105656523781240963562977242478997850406973350485673260002257645664111144378574525338155749096911952516900820331672363897698639335715136792953096010682234052048978240763150038388618909326126185077596777603717410387558453314623053769541716936550393814660816224569117303214630630670467189118107355066104031953245105392014745824714358750963164632148044079648538924357829972119182495228941058947428875623889253587386838550323906526509343966717440170206932666989631978959174410782303640922786522069049114650540495860302395696555684129719686965233379339300776776982441742555873448808602728771169287454693612272860345030914213109961493899019679752441697835647060179985701360360597749533565302298727133993206794665901248533594490948897421306722620593205138039231603993780326014393809303813396329813261011768039514567766507548475343892715830317128010335018793256126609161390085634427499019822562247068551567821515559485449984862756691895744525366149246744625465041089267041590040018134028193395619917817670893342333209511253357221389798415361519795019584259500074512022043750935746509559590541977440660186683061899225725742666843986183412942985424222374016713333657581606645328308901587268185965774856050629346545508561130135899980751528141135982569396427052614059724533964717655447465617856479680433036871210697595133241268420881148275811756468733115032219172942634547063966467110065087604625982680638587199820542636652744525942924663091222977343173550897879794167886268427913652958342989414427031043831435625646469987813462914690200287951781863779322522711201302982782244965399684718118518479756564574602599793096116351432533891292394778410578814023059680406335910950801680262763456287544339874050775267774346615976657076401510217336731824209531391589320417546492866259015960439910735267284346490659310587777413323874326084742646482886459429698249015577151888781629147811785258914680440722101705682737312661602695074384944189692624731863997812813608926195971478119382354743864231775224485617294891265741232107627685292687146713299582088923886652855281704060933649401178231624144433164232658029068830692847359294439056688778368157613745201458122747900334867631475038935613316624585779021261134657793590567230877589018970620225979629221101060210432956551254301003623268060997758360231406332654522640246959920552208061229790021138952964328146069910677020778373146513926899032959116786363294007293429651327093417867257374274104740392107222469092004808503953020882849063741621197345483474889550817555504930013680789181618078517634898241448655796205793230542322578280739994056073343962125830926456636445192470147426636337404917818757014305138946953005404971149793191645228762289968053569692778392194875304164670558918898470498235341552067843572356063540797786112714272159918651703878170266673993493864816692011893249658099049246704591042379415317586370777411933609523680294493958731914139610537591767182647548083891118659118640141935068811385892234827045353160227816653311216817732571347066687737311712315911484372617056303275642879998470210963061024051244728075932158160327948670045313522059503623621071046488010804343391830881908933597947621901860660482945563075673676691417137154066771015586122275086522912598063819243778981652137932768529367998844185367759477099810146563053742050563467782993856806240181071767653626907906675370884856112720858395274485913025771075453855237562470067297934239399477010405294367697746569211544393572448652038186082340910213901714159195743138032251695609248429058732157650363667649861389018419982257694473359044486522477708492383031040233133141697460990894269475556920210631346508231871078079217499706004437836391472151916465411416431189287004396589893178719549050434298685303816262063850838946387740289098829003100917449408357436107176741711183405140649948753284579827294000831043594064789832751379073477265156995932034878979226729676033601254033944313812268554774458295331681760231336172460544705419885923305421187597179608875943173603518218365008175353071208600893441604644293126625746634972672795263395591879953582397556004381954733339849499801566694086562926403438091704530828476009372875642978895658379366357926714314173421196204180480067138666902364752303256869782096667457543513145549979333482617170826558703655277204957563401216415383467417081269788274664213624348026815321312362606753942545192843627027180565599565621660127516339824569824499750431869061421390681393038380711653205321549491610993813777103292538509706796252307378292048553303442518076309710419093409072743741074336269483573261156141472938449319912451030957314432770317029235169221781545053606664372054553191082898144848336928175887904529794820588948608401528388050714534147770867120968622680482873174604888156191126404996184563870578462207521904273265713552008158218140399875029506626143970825289466163998333591526197065268581093160260945295403961157159301652801882273557708235047473260414242655269858838777660082863480131481319637387712609390513149619416359851915883911375099714516996416496933866156479539280418394264624631981341454053269315256665728486746630894389316565969585471196814178996455979413409199883980664553577234262384689374444873826453976635052707833722692122889013527402924729970025732280597737075042666556563700988415866735119430726512546858726077928168956752045501371693739772841165135076171311843384641678322726727910121778511905787273359378702676897653413141837367596931413038986325400339421464267704307065203202631241455019978027409025261386219831354406020197961282495939170374906855544438600111098623203251431776390945252459621378246374221005597889668836321399973296331324782721763501481270420469260967266697430193725171976966569496940282049633801505841243794996665772145753239888100714604865535224830937488696394917010082105597312386344608289614741693517777000033422410520535614565123643198324241552515303731099442738360410520955856088222291245567847499036352257102185387985759765776604442410682834578019633206812080513562980613306469489310636614617243220945439343772274615064071166025218930661096101843184876653353972066317703442754921755895675836840974806592947631294371276506723810960081373674012473199363239320490885425450062813081824298685077805102985531003716137647952675905863185981194017768112567418332759089680803590765103932279105710805868097827832808460158849494458063934128428680213844102992188392281867410434555392765256889914210413113807453829697710267236949455112151599951620171893123236113974352983844581601679324502279955641168498843002498294332930559306567726989183092967383472095403121825555902522341343922526719645704160625317711565394590590103378635970703278629172488215864469780551103897001517431122410777121528247772839408620828025458550325141357096051504115593796425866157539261573641470002148238721231853605237114176698245009683579479302365505349681328249757835477851113949996595788955056076475685722002557585617744676887564543308372162590303674051616484666925033055492212182368610373315610056237123952629301723603253798812674803077173104631960045104334520401579259877644630568156295927777721598399464050748651027823957743880206233455277493741369939481690542259627809773597807443772962756856004102347866957511696659783515286551165172907796079032637412125169680251654151922130949015995784629020104294404005074477993572213518105002478012495988756317286361499067282802662526039983708841521800288036822130582757766612000823129408940012823065890133441542871471880801181745049105364979335317523140498952513539594073538694674498067438880380253146893521411425168367990506261195340848893881454374370796538958192403420061042326378053053249705040170528859928249629748066179582915699329391483631059459872907285190237073074043288892274176888987425782776638864146969549588331389969604878741903450274253737668164588857733147415762023053867440895975109581628198552798752093966329172180874948566730297531196242172141231502831107106683599276115104618926735903932833165855204606179659891404713849132136146713577222813921790808795479061223933426989620939999325023914395815656563488085271693318573329583485160834984188011349349049982442553863411570541389602358811677036750196428603958627035193623951401319550510509114123349961248379463528692243316278522638354311466958552454548279544847016512983095064422686009124027994644763643573339342671244439912088454687369128066116695947229491361007639849226941384409485301089035951606434524437314356494716536066955588876470079543122608494305923017211649703158671600698553881523484991316024870123815843751394511846850297558080685584499530690423684111798905115957765515951992947981527798986575623491588317926233769091495178569022223346143167427998736070836631130471860404130544395779832128936982542885934132829601004814393929576289308653194278528257138304878256881741070379671778677552482518994576163941131316284025784195710208852399057731873463296764993186285382563112039105782796094990629200776802863313574631758421021343181549433062679246116768564842436448291236786445705180154063218565918398663948785224101483082034481685948634303847251200102044295803317936402162145711008734787744672681217267565067011275319878902579019067093751360922732896615523607210301397717093912302645616527947513892974434481191357470559061866488900079378613871559783014122784731154141736121339207187246425398928242562149019827445574415311791833810668518098584487244026666694160984890134806094965084817635568209578913362994392055390507139565547093720533986280447735717399515671834499375982117134076863684816973275947976955500740003353558764736775674332960594400891535255051920194820649396547003920440524520262889081578897661956823569509484940322383235243489916992681080905599771237057510189624644278686508770227223688468563285437227466103752180051467894704619493494119272172034183476338251686856862194792690121756768250479277715742419712682078478470848196642823384744912636631689140021235858016795719105449771207783533560843489449069210029123987382241988130023804775516682382599662798893950508277060911162615034898917601375219745049781112225422948977223047980637556239802430469583908489271079048842727373235807588864352641380942613244518339877918046800133187386404372197359170762363076549663414145835878217388200851044804702909812226188179580485755929826685957139860284609842849275797559507046784167619220599672524808853953690894552482129457547126943168245745811687805793616525955569339535433372990348751671378189290769800476719047096096691371005085256413457705240064555086378405981604041004320777432467926531058580904709218458083793522729453347326672887503786779219474209365304877235375606711241459730308832396933620695824190205294402900615301292402982763047869684508878107747261317955860105632311669788295681508510069156284195365184370819337963264388717083952826310831781823225946420048054451012819082319634705553454450919601866958094623494014982850852742597203097352394530043290912104571848570110355992024849550599686194216992122005061117164612610488168581594092615391523215970986261186783620935002242319212529395984916758261984320781005153322601180560667332233004990334050237790017660941453173536342412559028216391528419267164887446927304918334260304243800557675474512813504464820507751160340749854806497568057801395486194203909723003221412961675542768540285818520451189178684387868040776193709129006794499503716253417879899060205067579670131442055413215874928611385238116946756086251698931702274884482366250153009268686415649982695285578231675198821189078200064692290037929076482440279042094356639544122054864186583678019695167738600891899513328014795644976059015577284304528287189487589075109813384295530102222104105138145368020570190087295132978680572043138352178668153638416822077733195704371986048930904426623852873292618677677366315804481054474663813926520091190002932745711103435876593965677507272719982189372571004723950208744028421114116339717810648360900046377382534901343226181132992240842918945776939304869725598306023156453582693089865029924269796026644375597185213771514094030024136780914008168402544907430799837978027319220641905516712024106979144411458658701693864756811195534865213258766458221177141935348456568967394512945371260748649558170429503884251957470886847798924705584961457827998980594698174958197061620938639558815627921386505804916786184111308430037514356322623847205717964721642941486525106379031990612984032317962615315812581968965648094153173972537537412252852380087434438711277088783916754989438764305629292564534706541384124023897050508181938928432747747015205173156054283510522616300371991145581771229994553408979844520696549070946357713087714622133188589371429944595100957069495155321054423951554550407435914844940112996824177105671395080008152309231124179333909171841802153852310865183906553154404395231329794521910797018976666418320758541717979005055575557073458123317450904689324901356995216554570661579769482101991794798500384516143505085767103444704078949381448213101475855821323211743664970563915332687017228542425499896751240156970542852223342209291982679565072597824462926020656396900795890633818965953570769486389263995609897635080651191964968642556874742313239118369000343692966917332777437328903769499015214435322895846182719688501472294238067850993836311900025272505677234884652710139237613115264283596129532514640717200402003931397860192970835232825889713257915641231925109907979699824953813463614363665826945878076015530402099258890718209421042769162491652889959842637252079253390030825089668240361666314893956617759833450009314972720030004721653201397876587477493833729922994100649688912145619412630436684176398560655379523668268954153316074212204955335524531065402110968774283799490360499595706114803962617346911748891152907381314798604692579655064885048509134870035698887189382038018395101856877171441456111716425370935421371343882191753268476527752413655252898715709222788544439477078285380683901093851767460759124194901081398670880159246960989085257607802678696968349282726313015732155531843313650535652768971433277625494912745881429020018077170193557774140135018078361483931070195808142004468965174610213197905956442696805028448174403580410225679835273934642486063162592469177690663078968853270093363361366728124962285166680125430033479134870041806805303492300915652010018974807906276323251579533127853988774442410563742022259823438725148603526291928271223983612319810605631535625848587575562049521002444945092043222267711228604927520867989831778207541029701926256480576618914866522101305270628179349341696358474433313275439231891046129775029961501647178145548055109784719474655938323682246801939568219278825796202541345091632957144076156721163878905194378911207716719364827013525727489602523563274145238255280857521797019587873522344226754506690398932549842244979724764642193411313224397773577971271191846949900954407990696757125864901597632202467762597659765994353789947092134112624976790677661365321787883842695909551067704211335498519644789713497279812000427428819208054883897186195527463886072814817676586176512616870903425624297671994113193794072952782878867768282460379613090411379013470803958926278649233786508285934259205697954315514516291941037101999439367276087390395688271967851974821419732015733340458640773131326244543913199635370612978000637369723038164062296002827244933978699939219233959687699471944489877655681366242196728423324597306465350956433026491219331454817657326242949353046000645609993938034975064013909564884429070968767961350939684812707713683096340649483051076002149227891366984712508946478956016380137270526508773741740040916598692981908359366797375281964674863057759707829927217665921980556074722322870497325338717955973839363719689433016893588460946600768385243349991689247826777208709683211475304334080343027809236516267473885825727768693784160074821047675253490431786284501279613535602814287653111569469423749213602425160112874992909938400383337882638861030730306031827017242211970345626888913304839740983487774128765882178337899474145570465746489356275396296909102118853760334684160269782061016707202392328452498973005284375466701538593782277203020577388507861348680854507356284383439393105544596380229682836184520246066512573031790933605257443534441717344920977489641500783849551379104448953297757887457296780583447609162333299860739404312356220524836509255400752015356040291531932998256371466100267586798665209043351654125074790499201981311882844914813327416014485315608189728508129742462347247793617263104645659145167234606857968077422285874859991127454952327432037564145943261638604721117089700698059035570057468261669909760846569208075570059996326126766318342184933412944850454688804435733900377654803764895821001387827008303844034409747352478695148731106042406942333163936440698672466392460218118776411905866207650327070568340509916053376570808622811530977378461281884654707596972024256155668514349214559629902442442057105159061640238097498673359838190237630217774220118003141235443096272946362543043870515182221172846252698111174547904441018383626793599350042159962328122058139694423829269128325557871978370288725329986298373679415234712537855856062298578551198925019945622878600393116700971071300824248233373302907842061849419036307250699384209791173699745757134107254096489717336070363549051474162588827541360990832849559967935237809298257669584051123585094973259293249528349794120989008615971344734173139741782916008555876079259181860968307910112534459372739312890722692457984943498499311550629260294401710438065927818077882403654109666901172896132984756350115432853895567081414368626302997527385873245366116182885234443122923071867101176262581148279016921148951549711714733157722585014795245655842936200381725031253669131974181809279305053487583231739253825554196788552472047306477070550973021317966688190066599375315923969474512929920813963027269557845739815378938825535675461569316183452123365030685877412213262640125955910802975537538040885236307954211247230265871281599795925988700401855251931911585223237137053238845713871104716956899304791904413681253842780599175045660456762276759666804487458541164815108250286076149749039637196614622554644062480133459111096232286141020586328215207581349701895321373522040000476594102935049293007932225870392368426602247571328581696725495356832684445291625631608290256800799955629826072163080057292300685888847405548352308567438712787566540594679991155338391346050225856183087248483363470315214121350876349019097504858631717126005308090428389603599990857395949927520713047435897020413880404258267905477514401186683169307054480361204066175320021947823524183795120910163449007898756620860372152418563922883071342627956735021629753597942116460639501720675813198757422865391580398245246554219575432846033474124086936559257166022167667205780142475889436643959484363781460129158393511879688195649674763939861621687781309675796520300920987773579611956960899388706895553406266784151626341816314620805963178300578090193959852376719200507558904696898393432233063948518205495659035811428968034517803763786113458108107201319492045363056054545298285222838756478052355213506117959195176540648321912005564709338984009590454092290477586845084321412925627771132704464874147248294945503238564263237955396102115427818858067680028070732716749912673788235569710209251529867132236967317664725143328080483019626679600612301814105534480629635660223772814106272100942501000045440860648070716664124955217753549539809601567641975675511636862912367073807512692952872745900949697831999890332174869831891168755300986889971809918349343624421969529378041591751059623955165173869751751163030215198721288698368640211543209939259646854647416165809126775270417260493743602164867740763671046307123382216156379473666903353524919153588696660143600399255058934695047995389179212659090162436435835977586305250413296645517330661664257058026472294897099269179386296647582318109379276767750161977191003804194582725871591752801391275641045899970581015417704583557942001616448360420879607590384757455939388933204981260748278385418208920714856621423192779419948967315492551822283222891084929917699634612948478666673774970525714272471344807051779730022173193146735641947996797483374475600288702498701371314159486114367078145251755432749045879225432764801134131108350006497169969950312818782335229509724258619154587037499711686447041019098481866453526583368396341863451912892722780162525729483639604159829331227531398465764666418828935137447832578029607052634492266997076251103355898323611926550401058425142064156461473111068285775774203346477087436977107247433971878224993741845576513879411439039936363919761507958766447229140352776404160609814096205561933817726036805144481872687648294315601653954603286811602764932931963100289713961487465853269284114261318778728921477985075399756886965587889874228255530820507425475106088605068662151702447206429387497652069512269815556250568886640459375118380727148220195630969275960493912148550487723514279560548154520983756948783713880598194600752513888859821887873257403900508273541053172680284065675774070909313684465178753710207583938851827236908837405790466340676127522024956640302362094459184703130367876399920855728770066975533940800447354532922188966991611397775319684149782880582639722385409114947986755982729163611308011893300410637390674046852473332546195979874535177546240637939200416749025870019782809748856485837417424212552407421341651762336718753827135366621497442827467590677677262280369795819918120846290345340975547719684115647861431129934785869799678384333978832694619037818707759515020963361502072135900473852541169592803344240603467749213036317633475353406122567812870580668634656842569296370465948760386624535479932089767775249850191741419206441771554706060286952320868239781850056695328470624148281695898304275246808235830743796949930846185689223428245510886644073499608281008132076309632825074537594354278742209783684647575556466948685066594405130708058528450391945664280065612586943192372699742694109245007718195838951942504759100559427316779916025047812749565499975509076433585069189556170463777150924848892298497187182013170603162376743556635226704711154808146595000692527958074648343374015505576949522685568156233171714588170731606044894497019970119507422772108727973760673290649250704432586824648751863748020479917644618985565582770721011891801156013483296355848399845364373014165823961499296629960651205122469783566035469058762552781563133998267564248730270054864745753509673622547084660987249981814002353746948635734543344274350664891585652761298927181402407450036292644306446777435164181921669229409300517444031798238024560111124528792420962711695149225962690043030182841165477777477330562233670148023498831319236418683079113949039293227847591680407815901751301296103919127686609725761425084676686846767514219716418746600414820501555860560512733156639440161800717288342417266715981583841592672295083990581319488331378545487093541532697741493353068591161160156638687290633497586988839636414738677576192094630813161517976762550201602174853999042775789362534029203177081730327658898090622941766264072070853448240796668119657970486293526535562616370666087305889686529058669555700405511523488037027599016044119280709045360659890775433487352098057451621726769353693305990630728398107805594901776540556339554194498406313504737769763887672399464981327725035579834477654913361034324046204481961141216882216216724362613845239390013873794910259317454021272389598210903094892247864088929471990150366597647270728458407991754912149066960117199277971824737344456418282047629840354297741639842291205664132996303727713416955467289138784908277348819133127116328980769562950223545700676067122108955023252185619979572221005293693026313919851486892149196912707882161821299610015044606968050351571154599832377933201586801885074155203301307561201183252917472774727256097948346631957868868685056519911942002443059837650447131404133606869873578235330934200044401544969289364688807311678402382387485138449487276589256898783532444371401225436746688937959856100055830245752472241123509138892096562315831699144507749775217362768159279120077829792820150580701754381322397768183765547566189072770668526868543388537974814552892904782432456501231658798285560653113018505379237027355875465971214072363009339172548413603627068683334605327869499296103599436914824340978906576379957942446626677315513232380512783478566216798181073602265655468024785938072632212821008995825429802319030578129831175150033248223218376997840078029288810721425079686544503262944458033784660895939660263675656640251276145815011872216628442843913934596512774301530434853629511318076168022236980119213759806390393744599207597721566902829873758079702563031935211711746695053302009033237839199906120697607516394180907561834080425246378879377616804642768656978073024388507841849978773935494546082613567302466150419856087155899606607010768375853317530790432667133388415151805515211964434677767276440924204928424214479415265608544519015222631078980359775769713850143498356967570959170180399535895998999486001951639222930754021229078019722513495958861930146987994456958166970298913192093584339416393421996253957258584120638511839234522397615086957164981146657856608573704678808354672194818984171018361718165301222610487681159457050093067015175779469711119342501999067840570586790862355334028075633416226034116719814991878901624794582741126665793469072518612155385076964305756328768375240845947076961296380629017907124832103884929249044804828388889031382668433014918404584184682224536513550828582906446445507914665617571490796320207799365447060263743668613109146784914068982397337573905332349743639476073891401283268097542197795484672678103243426299108223416681078382127765724127475298875988410495700785772113068550560577807938452400350033383935203907714416933067339452821578766727463333706585866481034235536710033852400136796801027808697719169358708421551319034050415291172045856188028944372459832116787737343729457140346911721691890786208754712372994365630179368984490043458600047219786025839145992666463690820421896962130929308204885983315448570350145342510797265711120958561948611701610562422555695843903761631517423115565068633492234751068382479391470592528432215055773254664465447887120684140234149460867549360339575508194579490850402137621318382012795645431725046203063890890156932868223638084445211529226653530795217033924680014572934677752439230595021759776056626560404336095522415432834516408245997465596524515990532137069182696555553672122249760728399363184818003614536920848840573708110156339143165868225384765125568761883290182078481185985749063810059259983646973077626347259821959486427171378375825066241407007408842377705405268988412248379720544951386966313711708022435430985592325254305574509640948219830836037303985223177810438206901476170329508237823048526535540612874572974092305891287123466075496658927818191013167083006085915933521525275036045304746735880027454669970354599607987593453664400914005598241014332594066772871602628297337293764419964940002740247361588957854899193147687413601604457960090339430588287000072471573870616143412569524734683459367239159042474097860844489296253428669462846477465510636934325642227718903616562810108640358214498671909283176442242420157095847189753702626276904423356293751469597973589350799579966649772949126381341056328454921492650999282428656771974894476890310885040153338030304386502463495674046699193223267012157099541213519788223159769281305389972167913116345402229501442638715342404588415890525599583454545144453196223797015324495213381390022743664584210774607592503512609276734719806582852159387427310589916561063890458617960124397260718680642671713247624982814062003699431449492112058943704196175541380360854043129021218403464948801768915748696703682277482431436266775880353153587994505401941138478960651076269542813794813642831699398278038368420679770203963886483052630593573125782478791423118035516497039526920522351706926481138824091484379720841722998720600941002154604695088392420619837989945229747327276644696679960899573528926249230292123565967446531986305542107322231575818534909957464458801927450548691403084007365562741493285984883234656575866073628808899512670686974967120123115142506674798364450980172730390021127426822608847461039057971319404991193254063440700159846077577819543654410290436918971179922937324122104100978934403673339959578178435792878591824366810766032817348518181407831037355881859060440046573511512986451821724800081140859703429866161696785761411812197913620878233054184613050660633257386966666172603750137423675902686422740078541582879436008255155771866608726597367470450594895226731970108788818023186029079314467292807102629241089826022049872255635015406420136235936718381121747424433604605709376625105523351395433834979803265301225699587368740860580024447791324600287329656339280310642461381023347136166551006151459149778190975552239325262354385628989473388691961392724552327712405888049895896047387801954134639216060256217725261794398213954080727853835001510869273122674932194248540592036603160944881751800966693806148362302444294716249685500020753012790532678779213623626942133077357331242208564285881589758364253896484119598709874746067450684776432945545479221170119719154550098820585350552978478030415380328183064432804682255707628835325271699032817551158331134817614647928516734386883383867599567728782573453558487677201146069739979567752933054893147144399187686716143408632993642263839322781805817981497895557448025775316996158237618251440858249759182448038940507468443770984739704506632040481873100891689275805697477994663274866096635921730643365811312647812381387060088405092985005403536962167950961087359836307218710181620416929723051475481562379651578108126674729352063814271189427434533898314003325461463816438089413414872292479576944075215280167575140258582552451236215706892744046388076229119642539678878736713050491677540019331117378694938213405269165246457526587670235624157472127926356907550670110840591733803412786131592940581326576743298596727675905679224037312152496703392973115834740093538593562945395263711975875117536519756636596279616616846990557444226064922661904851460936355439657935531845639283853015532900603093069340189122815521257582003352358934314533536391632946682575614612036762900204912320984900886230149937285083179196657909814498057994684584591256950397356287937280027258982693540411609485844915285761197901272245416690633747255298128167723936446710696924691213419014608388410901075879988514309998358356033321670602762985230691902389822933968182211486073118881626113620774479608012123227597444458941998203907989855439410076758300843164676749437728389294415228903865883399226196203586988707088676426762301732952096028584223115091047861495100088039241607768870574437099102900966076868850954331728799127657864376695649861197919406152779690563670370114502194597203121621781447189866350997274079812147673951476904622441559918395880766160496260225951934535249133661409590467370365040200555720163305679189796964257397992240299083406346233745066082937743074388529360484056524194507619821617719060823384329823199450904453211693987893988126370759055708893664762849972094405637531986466189589121550974882360668623898256686340239803606939619054584077558602614804211559514712367838918456069646418069245175388120088180594302804733381644254520571419401915886101139483462992348922097368220853816516599562403624003555225884905193692393657228826854800562268600408804280980033117451080812844013332276550851629503765779833471894614866402117955304445049682125702128964852914669664202745656692050772673836510386937821895975347405014178870866554628943491300679207039649208162455691536303793188525477785780729237438996213193385662976086692772377215400457424602652856792080944196409562833376350059640301276853420775099630351608988182141981912646575602265069873259277323522917172910333250884003390288015619003101393846751011948645492619254048272514526737160317863163341635812067145007731556616069707058193293851169572655334853837218143116002302342949740527420194975636227961927343693580389273571606616864560846653110958745190918512949636241045975635132957114126583676472971709531825449382210306540986523381986660817554694816311336122307496835916411661958030100992146046842515597554986276420689248497383873470506252930165226328249761210010114484917380590500880800666381932185393386474499518075801611115060602356021780620863324717460554534935835971822981084067897574899512447677904488081821880062713240358912879606546145632181026493131401649468549912829081472510209889437510299936161642120325495154754772103293135373772873367954711391144999484269856024686034166518390781664667708191472266231494523620662225466799571481168279925005330443842550254726200992450419993530800932112027156594208947090515290365829816297115905354270972252726267456925648496951397388767440917621297028505437702314046714189044624809695002597241670961076870083309120346656904327697426521037264871505066298240306206859126665841658633495532365903430118420892060683184292138086755050355541625017212118863998293184652448470245042657767270915576607800123803387953990278942398855757471926402992516034539513770487472056162161447550390749998781062678484806833755093757517910239867403281449929248495144546513539158188131332314738510494237010565903464533245196105417189391486748591309457319624470467079119621310622049060248410421878469922706830560222202912594836253739122810020319051070753468899493026514970362133791143251964985888254376663328806532537489997969510138315388898235836103567201459990479724963618489371857297077343718795442220060369315524101060336575928366329259737684474959709537278231487521730118096778397890472494667782014014678349454334136301604096841298643283413577371613737959467989126638182329254502888237092985226521111291441870692383320551852890774463641540533696475134051956577313780461006056472957903656579144161199118254185529755297409474618215744518958924462852517766675012725513236975847597308083826335738172745721112173176575059691807613488269116737261377605559583225477430614754790549451410113035972424746785016391466447358443381559047576024166976309799592263357967413807233438341951191453497245600843417994102862419347406472936120495822605711793712854416179282545565060268517200767125911249064391099387277190585811225509832369735987523220269388116949599858785785176046871514358602076822243184825990241078521373972483790005363494687993323179606079150678760206067215598996802854518331491814224221357591393225087594127945698212090216180748089066009771934876131825423167645824978841267577309184124878897913939999490414330059265549347177703705650181036404775859456044046891635424856022232660942298089752180982049899235392553360797636740243340466454454390148177759291751781304638264611640557452706539405424174073769176343149259272814316071668892957242955196007129404148090578089432325459344506516300675574446073771268363338118344602729970184000425534755654393308187765134868536801564174364357110843507956563342371446051567345511550069982430214215540506528140410303300533771334891931156666519921735817761798054914806997097426897871204443576968498396953456323962133579379179053245089387004520993289446105695927071667758347479384283497758978336063728172349044461477937580722884402660957734911791798186076412010583985437921442125296602295435060142968701069587713322923917153012787704546924895353544055701251004234413654983688299168685399234573347013571835794178951271301618006265037707030846461347449544262847585526475809947044760415853877446595566796169457243868421246143702306578922892221327741268750074350382139363110779850382121916884063338463377093679031914441742718849398574278713993761576064548078577488487564427750714366039662291694319946585359095777807415197819988965986417453123366837022756119124683123596188606787671517007394245289009376920827390453147480656939590080756668480039731479456684974926399639742975359301163309017702540645437058192271994550176598676313741067143499048198141563063662674276967620249198360173704823243493473805701672939515812665248463709681302943140407779656532541948956231607897911152396502197159127439901690438662134736131481158967626156147671283141824295421392034860588441665022624770841989930518465610036396056098592405548898076670780465365456777024143970176783260825249060773112403270630870713899594493738909448926485217012105972657305123578047319828557576214118197746402285123284088474343939512219179032255779163065732360631764866010091836766456010646761779574225550895841925157298137837340357658872625995661080720624163662019593801106556426704294734615857567836970455931056142342482109147765778447587785674931166183837175056009880340659497330148299701467910003347436448276507154945098607825519142276627887773305287251569324730358737682142187499773292186715458463264632358619364359876532122081543530673816994412100679777470561896660460621662581049477987132904358400530709612525924050843153527818307025998379890560782224892736406712813063048367787547482233278929573649290384038183148814991610673112206620215035517729977920497252624486612029663492923254191604173313647018499401538242718523512997732367826758892895347431155465928185736045573292536671987974838432678734354495419085313209844871765095857491118547785831769550123714774120600836476750437635584872618394842370616705719987543271081853555076709963016930539105172690303171813252627770841202157038486674579341669397864072264537402728918066518593124791777615994941959537825499325496278732266308254122035562910539271316874300450414865442218982782411173014753844254973337437382239305734446186751323117376551620849385639714075945873971300957669890191101519457518263904308110801103788093124487444496262182589304792731593147004288745358270338597439652548291211696112242663332100396563859020669990369813016856076229827004994074656424499075038585015463195585962376079953782786458954034246811425890145696154738525860092928897894984183321858521772214327377352125885029163222802920919035135802698549304849295361084392016441086240669739648458922076319539375191785931291850555639238288520467783143519250026297429234760788201426451965765939453110573955713418749962961611166211099331517543925558584995665905927373043998330542505827578151274648930364792303348694354530718463862250084546242943448340665139777892443537653968304749785990303608343632028894247446721635427567145126907266869476690912123810979126214512236119974754424203770432124655219941534386304808446274996479689112851771679985890718609268130290261553251275660932278469570064921747544660209090895280302750446923257625531824485277175888222349235843605083636952544901439897421363894866417013404321213933323855471074945909857599183779094734733418044586055690966722059757377266693151946863258809308566453962133639612430442979059778750948418593737213335122925052518686050010611023208925851289390768401643542452494478025301924465604584513947940463275974968404927469526259375472749803415939536110917579512648929645671679944900509317781263963497218690973624352428986145317600424259969887584610489751232798889030276838870878606368283071570524065993384997277199313632360780626239894818506935730399391716046944013789114997645346164068138157813507988411137259327498824109104682433880954489300122943043254507000243297610820813585729029744691888233825330974039344010148597571331133738880595790943918378611523384212988082664754990451268796766108762741832864745584859940693445119798604692070334829674107700459079796130838194789084930247134913353319593082826180325965692577085762702237408374324152884567986480998136597567236966012840143899013993408860755010140416156977160558526543975271739804214010292350523798018748614299370190680556192128466411273031438595427218441091750994458343929277812506114889503796588256163888832025621305149296125395940549578341094230043355959425817517406162875249170300648736309974213326087295079775666493696453278788563182494589602199245163039330305668299756250384858209061138310075707770986477684961637230921865270256372127605641975655095886040008826817211136382764024454632928128489071711400698061491740662610690871902500433227265200503827780911344389607917956472860615407755297233342758977495602632740875769814523421844695492894072135029157831692796814152475405633447575332502921517102440978297981920944967979311121586762305139712084210986421026435173232874843975497892177123468220276561536574859030986064951008701077687026640031701199622602465890709711465978839317369999293037649748138987953073447334392317495390067473259600464371062920786021294129687409193492235520040921455744498149361114221807929935222992805491851022363240418262643990515255389158202140817281152806501019804969197272123126856555983990368709984154433529062327818033977291763775601368447965431590990918455826175979912169945762480050382620434887609111699352861269062989600447285463994034649295825245857839554808795551832763855734934271227730402945410725940648521261157231397141138767933373241003218947132726243526401155918095213522878329495417905060791068770346574261068587870866515293192623578583618905965363201237162914715263668743063870553442553456378523649018599960128308562768176471488784092816003864745902945384314051569871481495881518633699582844206600873365855307166330204722922457789942449668577615284482594617478657910871398950117519358802622666520996040363958447492358017081073028883744389430031080508628883351032095430275633079323581872920202585358282672767225447625996410747163667028305362529371054405167226473477071312906391724088534999876597275903636895945857937457057616328229167902925166455353844298897939719492502545962955258828835661061267514590971250294507709729233800121239194385827173331260550261726460079495456247380766309000233377236703883084971506062657262879583048363160261405751277039177483354363513545322253232217305275946765433878290974867743466759111246873184354491879749980751976680635718172462695240270684081201715628904416732025947299120445401388234607134447713880802897585048546264300706392547707688546307614071797521462813079916472475646394197077483916720690303416783939962611915178803565096087349951863354317502052203186048111761283793497805154447454726637253314114775860587418384444251953737494629582382483175098314668009185557905453190071416551009524899319996867485263137090856815919486655525578404317888319425735605630663534870827579014830759277110650664508421786833344795208681984458288478915024126104414394027281155004747060604669580108814266417532635601507098460793238299450109662949556052321844685327818168164644832691793168176937402721781502141750703521290699134847167181396532379240540505207655112318610991547164768055917485274309576407156924735285171213594604618794601703087286802955263281297967593103629922866111459597837066178518528661829921818175321994211060905018985405413552999733761051916971037035987095240745949074761794815115225573976221451991007990943966073306300460438250517774943493378651155771908447269162925568300195298050263550358631552241107632725918160718317730930614347610930018314401096687497783888174025689944320651720140168133304945393728776810156064822723454698725664846844610329459217096120756221059544020193890393986559203353647464747688778073011936722926371049688555453700879404710655762918992499190570968864966321324877716481610311636346965962348062985691328150972446039520233790812929224354113435094515646679031427568926866426363862337984802368986538615464537369762724712607364494896887079517317922229334849425280448747458810871433713641973195597763552258718712274418255935848244392585824030993909135287775300195632463329972460782073676503251907000863507060939279494953824670942933228139529394722862737133236437488215325017836289971405230044009680739721880335443366780472553867713411418742382816358807897722399645526886047867206715096475462562959954700443436798593484006143349136401203390815130818185630826119043009968821341107196031837732640778627025056973865158360805808841320218106289964118383940742853518773046663341207113506881132682668457664681236220030438187656063094868328749209959361966462022123333729068126317509233154129849940607864094979539938758636022884391703212364444500989720632702245047367761884598909292202282881511806562639473327787140696724461390655528762875597872985952623318210340489444449428140069276753277181927438732246479804140538338602921768113053731568811730136740727611160820602809568040524278952133732488671423956471678935657723141890100350343279385745652652692648961669664443331753382467156511636790100119350572687048553758406195308071484618752021161944833974774053364371269472140359469214294406008513203887476932886991923003935449796648415064656840744317778889325498781146493672809454252682080951654722221088649988564691629512227319857608519574841642017440103511852891853793505741106368259951310214983170405590215274922264145260071228161748247899649686426427161028668570834859695905024343192990922072228995123055883948952450253267676270245928326669510131239150227424167144788609874102974157051696572985341125746663950163450548631621589284064900893571368591650654876856702744603395454454119989213882295659928919119395210791262877109777720107412367428701769381032990093197433313672526095322732440178033337524230515675849908543908359856997093343807016451387586985933000428206218729142715419853500709437706476047366675059508948552679935856940961974319610155113425145769507255788094796631601517634665245685851634790029422431214319399983318395241626107291240485593669209068554633117796231395848566160395201962396257479561270406902915301965457462192178500737677848038361152364208794863130914433836066224611001552253705671546774228986615836190710497422460744338535812978002750195415944805338435545541618879230611352692769785134301415319229637832640482101819036478385645021663220634514549619601836125575377421277484555513557973927464624883192787466535941624484439902962927536563453727121794018651397252674069508700383814362977307784561129572511052875110382010262247206613791497532349222280340852695251390538006650963358737337124417126585221932169827835281837381409411386971539944424029545108126105998275542290805702623758851725803163313478093353860341454909132129308275466976591650335350035628496849179967935469879818326068473593877168025001721241032758239665948058698613485916449866403544544231678109889184719497503090201098483081598667084870793876483484014704202729234681284370745509289572947955640074717403562136835514506028483980323483622091034066414086099281144021500915785578335039523453459111178546042604332139325822564259042895437909772630002494748452187128756757259363888986907428933473117809441549463042239847778676269656873464766764156990798317865558199936292421498229606049305193710030539651050028947444178982742970815898412188655496078428916866295070355502689440335040909942973815412355631151681920731133186185220394596613389797845932219777357367914293935187132081838877322075987050110670364370699233165469709230298906610178591279343862286009247577065322802243768505068019805767201394842091472250490821775625511276881579698381487993044237045665620331501293076112477281122486401156626265813288816747188827098505762072337291567807575911428224842623041864034448034648501916780311228081166421462468484211072821007752958670011993601277087267466960004482405610351852213211025746717958247837720860206494884314404375840451127189808837350778614492399944725755894355866382661459719822426502315585674268311204280876184280374207375989961279119883696414131143650861578984877183668293974535418381960301132910180218240502499700454425602847514129739791447359641148492286199459881911461779407472751493978098108044878354637462015310070174490667016064041993288614716395803670070394018294989047479875819415789955364787783305526621670529535550612091896193037125116367889758767725178577676172670744923237503450359722881710043239442974745250284638236072029750016450703079837819582835320369919453793513311529102038956525919044718629776177923562807317613111737844258827749745714466984009111144399177956309897327506361264677783784869447327622199839177151490266552936464650948634306465115333903401445012557034989469227240789820373690525690351517647249551596882181982586786147758250990831497059329098263373384663588701158736765387132743930029294924060118224214684612611406607306695700915619389486136071201862690982660077810076869526460511276540617121991140379673717906891310448441173150588715404803753842294608468156829623159315493957315293873031612094742284593343831317398095214041714617313874324173547544086508546910004044080530788346068010818934349807066711938855859915330776863877092876978606482810924323463404575045318478309142016198503296636806041690120944966392463536829125493989546703210429275866598186924889479614772078346479091041342165514758122321644954992156930798381766544978616088410162618680694933310295388827858466550481915538513458239765669865093136201524743187690605351910499677110099600605453425129390077657380130346334143254002806216092733044436648276342835746586757963518158668951639399110342465917950071566103275430079651972695353631598263036966311382683489086147356432194761947592533708380064444199414114367170477228065761916584419181426305926872352755229152198953137740708395668572029986805690952580509650381658445702963044243471270879260586177836749158418289452263275665833222481081987836495118993442133853857632428371385763224236648925518913598624563310702358377804097168095199423149762002721833847224106844287666629005322718849854991547115948350719967094172141855199789824591512821024415519923583304962578602329813916544719527178037274308223380806933993646829319148419728192198395553434990479736394638957070285568460172704755971176213670958227885673409161600644752430158711472917659718939167939225992857670886108227435746168961889867088834837492409601508921897610134419306447427304535142027333836635332857891899288184318525906206886964134813388947680764439503217478194443045741292091860989769504760441886927603352978636001707149931359500807844513605762267459148648121428855099069146312055355861351418692187160909702833840173224088324290862628816529404958331892563312126131672175168177849003135554264667874411639533751271330161090950376005918229209890339319500267896020975332206717465749047531073711025807010258710718520946925291890510158475231712503637194164772009185873588030953942433534472885159835986624889452185167743868238253788821436589866738528918168407212691060035238039615860776940612968932527345767346603016230728591128797184903547492795362059905377245497121917281621801578668272236891835411920238142085316147100499892445244895609654377398283720583989354103212047078346074818445368034464493437305049897627864644033195408510292407885829648729289568816763963359805756123003517961765220076128481927693888210457604716583611602757429240336260951148669507831135252940494745752232712485255723598011130657645002296124720512817560294441759740859759704846668429461054631145253610933551077197369135341966611563758069720468725826518635604263482997987313099278876469266017085897577437115605515861824421834056059835791562048941354490799178261242125751264663725062203406330906754836003868713238802251178703649188732806544198650369215267751904401807336392015913615302947449981221511342817638143993753252415162305066718412806521451233566288869105128922290261802141265125322144947179253486809649585410549843871604935175695081421231320405214029971134776167349249210833764651688085590612354860586401281972711542346756644505507452673980514187867727468011990852776808339632013791457415791225437721976074579784180440024100799007339067338080590337087139580597752344289113216686270053465889317535069526384748262168245270533878106623032181026943060455195193755576686172334810395394399149029704154299187041821563480934229073558331251565644365498559855191509398068731444120151960056348364634946157819629607424893136558639137962151542180434398842958761248480168989314024700708353083228790840148570137114329435586007947082562095899889118919481921285247980913504361712042151245934694290752916712289201728896680122984733081932688216218411667091647465506059964771091439237682583758203386410319283941924949443885595316915980113145110077604656461340928206027690596478692072137527718460853857650666761403255564811615245798478717458920442245904873361254915627389077704209987493526046149001461122288263945343785703494340308937200904979183539227439111839504669622550990467809318658019977285095792972229673453135721909397358311028073549201508697671568402189406927486773699079568685721807655185947434751565143420030907004037204703795408403822971515161861004124714274382054370973171465119256692286278397521726402883831126631401696255448655789468506741652667375937539865233092989778329215037426659408003082172728520119379497997002704356952637660917344709541300083295585923079083731837413254275227927778584270218500236768950776038567318026681601647791933964811072789260426184102697960481038369605680897292262479313119168118980333830415216499406511651590472778888738418266580977756147974257304796239190271277667278232093436456540830811742276412990929279268494018299903851199073725570155269392378513437233986992368692205548122764118436589934646232734709645397133373690608965572767409804757580696779888887033179201185643508088826065955099388560994629043773463292063402492604107991968020073796211843418133015814329499957256825289255444967233744154311994198570262087267610558444323331046142987565459600191070870960767347556068357734125642680648965189149774608726448328595846649315131253144510794385931923905042095245064948982803574237069019636147295647465842374954330793516815744136036200180735435826227330687037851526702291197513570045663840048123476797776665127624661710204660682387848157732256765477637659523422792695424548215549720868138265985131874713099753634994709406886037593177726299673716960457393833093936106508931500525677492054816616551217382615174563074214102202515237520390638604160889763202191055831300132056986416684308749851199962520124824036138392754188408216003142900362830761559778296996666921721512072639931400117069564272744250780577064079943581174738028826010399298284912697950540635520747824706612611146043383181183681969026518960390816578652146206109483400951576096127881079899369360437983257685613181457053840957250516014599978182911472458337763953883253674171012307590140526826915778463092449879840274860429159610707600683083666188856922494880694624527734722734936248373600438401893613845332331946166425871028319196278159777667501966758426093704499142361365862500562482955546830033866780631955283315810337753559285964514949924940621040557853265245140705673717302646836257042084727183252571387146577949372998502032890025628208425300458943918257852954403080735166996687690809327808576293262880120142362827397244291541099203048590621080584531262329516263036148278872923525687064770674137435848267345609886665298906183749137763235481917031001679980128804641046018344603960745232040865850282809540075421130028597000651300493799264961500952666948250161502349158466167634319978200181873404436970620982182189210318706706102024460662148259028531128959795963086357580728652075641489479552113343033458346077187355679468337541118338152466842529866247000261615975769669269034690049958117513356015432948272293431827196419130720096627306077992952639795244873942612790877941523271842558620752352069226524434300444679320237983108196256836730335197638635965772915697693117183802467098441087600010592705704871281019065603104682197733230758665782290384124747636957988877783196994156484675680003446762888142797244337176823428271775102417203934297508989504368443102146904811868813063282951809889526777004911008184342631662282916491984881710181330672719372712303528609642227180194780943348149395660601526847059492924699167047120748131242304719291290811610519922428422048726055731309765989902685268155651721907472933476121522345483879599814544480357579680336815376256889943522464863695697792732828208595743771948908028604788669258474852259158249720902471367284923023960803009859854777921701355953013917857580972837010235673195771009528711672113729347726261550607946669760299611274456553825476229722870836704482320635568250645318948285199703790174135159668938039586326133003793763999759171744124821312204092700302318335030986422173220244121436972042269748612763276613445416220891199558741592448955669721504578730827258358922384393672546529178672686390809729073594006511598319609043979417019055270655197234256933265280411007969021957927524546274927437213559238375839371857038022915711436442355272697918813003034575540727998049539251452624604063978410613592530421353118899492817987137281165969518665378592123237168723122204152628117248435362076981307933256217292361903005604268546402199762286624344203227104159579455405781627236091709399329791061380211852938995288038762051132269137991750912774681374861483019903343135458923185707116346024655296119019657275586008747635049137031408038676207814338916529357268005763376417963862619224721796952307576317747298326899392635913636032842235399828304231214540729634558815032468681628583512639574583831049211170700808926702535764517555541346248505467599873656077252084100292845137175239348535587410285938170934615008678732499093078868891101610917492376000556817473079053126735555309241665130517682116943198724053993717295769251741939715871507005401941615580200553559679881082651675839013573529166925984052793198726280016273107540373293399415085939413400759801225536091378017228748359246613641392577783219718751141939955692735093694954765449716989915987812768815123411584384338232110361821022693003378709280581821334729375272155302768250916249903551407744985521753079479434630803045664827402641888171005596260865627189852061191917626092836636541020236690966290199296894009216436251499001102456496333710151326599698727627837039300932553160615643889472851701414263651980544391951290953606683288260642964258363009480928614806084938803544958755816451012621183334583125883236878605547010157269316303135094690978999600993405660714322399495640709403577838272792558998649771893847829016308794988102606344127188616145790791796955103735224545570728061589773676635376584681173299273895388668471032474630817480541498792637546437595808289197809051334062157674346848822775096258847527685823889134828437648067276157160257779236028872304457109197441932565112108115638127600634775118430471494130755877706876670600118653928865312668335584348847228696231713060695919601099356027707307334295339304778192406407865515239079124745838900017808681417008266288673590547643531683227785017837883211217514089897686053814641853459458830581308543365072094913939762270336321101583420666756574448988473318896265985288975468534036054386226084905416380764157491146376609502322160391948559147720754284338233149567186418594299204784640638068115492714268490326833873306501478915419863090465667630005439143398560567608076776434434950759289495471037845928809576729380659275964415498266422303811936336030553103025691170193488097691965937243506109280373645637466024390273815361789700135909958234817903806373547013058849415675759324141686339001229740170609842359727809861725698070914861043702623344120174545887391231712531931276657175781229895161568273219544295936784748026575329981330254646935371008543805622648222918336533327613679602059401382006379733021162830848268800622805471487058929770526145991429146209706972649190129228850872989983091573624374996293374462315320050091272990553536452957318604203094489961323096937261275304893518409265680379159888519574146195385273185381049796744576434042762538007180447147052742108594309546903241484087396538988355451915841505548683279042290843577341242141075656957605509590100762031781542325820318845251307420198439521433542045337218778199254865815037271584494044945023507219264429829253422841511158388961885910419378990871807608195841083364895225218181021446993488123005671624078191499262004922988664832106443974845143351071743800746915113259710921404632403945329311263309438187696681899894796688485912074969251578587171367909043143945157559227829928462995071352429058949731317354242657058863161071991028836295579148920174222766484041513503044130916796122222069783041999504285911012527212162168703245987031203283628782963670640316759684544519750009573940448537803015570450923827956446224206301006033502180717258427556970068804980787936131073712960192064900748840190693481061394307527467694602874286524119364932481883333417000439472695790830925010620101724843403891954785745414630144314570378987607835025876780175907621123891876259636618044015789739131333872160302014678164580661492092762774315489585142120223335371134147030228337290888406926614620308064855405298861658218451761149358495225888180551370579277427684902312475502499991396471067522430182629152627019993206643539475136514841270846136418484698700451620984858106653970579896696404098111638024638102728046309159636716433435181580775207049984150665854181859046673337614964202275144748442903573474889249868478813349184334816321826428113020471096309541910325730362033293935831236921555063885767860372386525653476796209616800439408419869240163510798003772446133328552338659048416288673928128987963935715748653719272834647796840289666978453098537186858849602783708984946425684070222999766613665296778656816735059315810042987163599484846631447159727523815575841114972154114381987093353457494473312873823932398362165140819752524512186295613692348615503267749456377556552267021219051628017044907692479995474709571411095653869181649013105358808314875725256359293356224024222670919503158595398904355441739351330409336437414945848010667461063589276569266070608147994467050185921788837459697657993739637015893901753110861553532052438220573225718351527156655398103861961490727056131495718916374846257507668416269000712771054570854522602580632501220812420510784188060425732248605306654626520616194881400743744060392922131366384290292853056458716989802623734078502262570010095707015352972063833036396523101697365526271572369747844617666330360758770628574144579337191788490925423341085028482291003555440251708575107388875106183155357526589956486705978186602167980860609779085022142849670052434689270119805870439444520488682229523060226226320855978611069324244542489362717169296708627724980668060380386130086197468720940327089009015746564568194687060191757363957975475469879824149991873743667677604499563804061169309732861481200842456157362617161813370288166361949472816721996684170374660276072492481837245590159386600894201824752646782388003146671290591808730308868400219164436337688806436951349839501805888292867727980222951147242252962277188517216033641846249326525611728135898135468141493833880420217733755688581139745509562889731217462181020574376942934948962322052385825535873857717943176872048135044081249996858238845964977940795364010163006088933373300579567272881330531255416948479997530897265139370241405234541836296419388522027125891364500283926255208755741025424755975059928602294091863286625923149041856188634239487016755671032960862681846237141470968247266593376073561249855312627875185474689331682437395503213853088065493957274041793396914520975495603243960599311407721519747949494885958769495464508311241997667683976099752448712652402348353836775936886582339013317881980809323467428041345489810685317409474488368307772354931852815806426748113704263229786303152961003996708197022587513571630750301188787690445868726970708440942966036049825786628449563449593500529431974916859313367045605713744967634167490166957407533664757369696894411263111689695573596707018682774147784155379038468699653889138896560533961067229798741989370976754666586297298588262895423230880162745091511095089885101425176111467781721414639146966719513633175512858169997870682818505594367554072823981505590233446582456292025181119983549100107279382153078000549184736546065186170845011728032536463939911170037732779624525884515345376005640639080649794118312500357630935451802122537833148968509786626628113949867273097071424263769320445967577360309228595670260166380511527406436929647913577700673592067011994116277088459777342324457246983425871030195620449969362187410549236872292002084231181215871992300412359803031969458403088775654530922062948477120999716023081825272511802951563454275958624678971980053686386736376450116645515461801129639231555995579317070188354739466756841111848616288374513064646378084361828082342608197658136391900787082796438487799790086722083916953077972127466619031337564914865503112755315287877730894214116662553256502215740822667774021958422578890801375091301767168098651505973914969994002831550143076258012018685215021735253299354490085073157789661260511915597052203769535319606355124912785997519080086733978805047124543194022135009045966824594974667774571733559732168846559391912084532050036113593693667616365689094747373848997140059469970256385585532563680109047735961914606596619554898510481514477925549149510411262596925790218854036390741839288540334098277012686643426086374988894454596860548919616419243371649683501226815771605812281234206799456568226522657562472903924866582170479190177416832178733608031717711550672457470237496150030401136416289756941552151312762658336095171740282029487445968706811919487693633016032620308159525537472956680173065415433977506440708502468692806010447802692248803768872035244616216302637114725006672608855233710731408024422945471862480461517699513027952926941728442676056335445495241051446276064035970458856123302601014856377277520626437835225694925766490360733414989369436528079258397839462857967648183130550107450882340222449932510510388020714684834541247866774366242217626035914478248770222627838618365502160861923229609930129870578800440836625724905881585559277901686684414318914707210743539848016497541514200240154325838874125071033177689729726421382201682107099774184838579180131473767751763691689209133242920148517270385413405781136667788341958902332907288483164082106609746833787358388963843176351733595466392530748639624520466309067981646401136368900827121334300119799600643356983286330676676961542538606650227660391059034845418352439993562860550639244373537261516321615074994492534653391015302325463792342199612300266120775956437631415061057442695662747628996113505047430214161465992421378339357793767505771924619156566853990749055970965794608592088623863180197268504907337605965035300396127711099287613634167984214784015509396665169322113289004516173993525885428185694557112130223335727670441447827789095994213269926318139056608748888797752830319391470964709504139482717040655690511860191688941866809472528387899566016677020392518783940811903157192419004478324554333629274682257698092121101391554331624622217859251300445481259521093187808856265481521213309686697599753376669263193976554481538080695269414636043172032483737895475860826214063071880232861135078814573714952472840520680880696185107995301985510954270828992858515350356408009374776794919771456331861493705210672106104300968339095407047692930577473205116406007855307548230320597874113330535563439659900870364860829991570912367357485258666219222266235619930214517083477095358512686012879955001732016145787832415831945276436007921940630425404848681804077411928494880483970392299349701840904577226698019340801448501985800828392300787764764944539819782096072272353553163216607941902231987268419357877764042682501131119990008410985853927073956210198386993516066107136844576095657790902594296898062355937464742881827078968567183287247337373699708608135067237996692699608807196059649466015038815040479931801476854373207798395768345968816247095685904444638749620105225711195751842161466914711140987845080111054858956283863455166055730764316338817028071603754982130839678829430621522443093516037058491313188631448692418784851213159574310569707424191049146350695386985822602012946721080124075240482903341717499874704752016363112684956463130620111675365251570736212017733716628603326543993224497577417287725549229052556358896792246356824858742918402023865707244224775271281760185356603807479768608810273888947761919913316987810177210809015170173917932739835997818252829417535442888555158010179733828950251892252869415949185590599201485190021693726141661285297797916830422544474638583637113919740174052409164086001362795354566443533869554134050531212261839842517958953023225450074233100121651322052669535535387438352675011257700620266749445096936368168516546680762558319223183485208568631014714396494171295491495803531033097273234094047279968557542116584485446904147447952251807554824443256677013744028486130652582828535651654855090438085383637438075726855517279679938357895494085362852532663356873325480733760584795970086317495179523272198715114866500092121220539407272888719063846152005783346913479519796715121786805046128492880607419054437537418533359904008906387934024867937055499232996198641264353383585369160923910992550684264122630522615807100204912094154975454785607287210413188362539168924114288279380990346240660093249197064867431590956366669053275214857887178399945854590871310742782159942888722266865501706782093532157651854405237748742220426440521922955432791159528972411992095739439153101423560520315754252157555073014103060511784177720046024482340562416158403166094723128087690403157282750572183388542392932229414920903127942429557413523788958555065713120256123078422919744313031594204991630436927314922954051117495929699108295909743202766554998066450840419971514583568463395158762827417903332521429778948476963141638736971557249260293306129354768945171473030510563374921808455853825240272577294654641604451370198171333321890238678067996526449568787906723507484952288717495249531299348083644640921656790533261508105639768114938312725846126321302710553330448726153527026289203140165386723677888402360635718616012618724406737753160491218592568316967919275247352845538768275213959942060298749661367260656594455721648963749930991502747884496602294310386443977227638941660999545103966121607975443071072929253595896371715561220100292514115691663336548691950037916621362313340810188770144269119170063900759624161871653627525143196166662874564747552004596682598188806312010200480225032832631215030987145446668221138146017223859891666015256633389904880420344243215459944208568524692107735481540657388393818797121951361181626616551317994511357982136172730377191400552528791882608721681989875044537777382533956559279389056422646355673343647574878087233084699331349379176851174881566771664092225122850087937973207001160584534082059219667261895942842546500833676574264393163323710091993862768569892292986060568492754908580737061237049852251190000637693970717843745532899587142939564055477765175094453671376894118850249016243440719871523570418370826349827776523529490653790719105956020610215152841887830422908004956003502396142318985636103531097868571097314991181264905242504135803007673520854105666017601665433226542190945198555393543858296267367379466756892341191246149105159113431065839049208379270453625972522786213563136080795620241322420631908946142941444996451777750788388169329006123992931543276383309175593057094485672779476182063022619320225914497928073945974346588312706808065138776117415646213382761125746072109185715062621676569918903674052162438987689667237134092704466480456018965041938498711150978945380079650340475146452073898033895082643828357453418712593732784838477646265779788976481890157079381213010253957760042930280511268124868694849741853884748105486591437437798519311015153637700529877356181771472138325131157146906464119564980422134230255567251004580727043063891696972115680295575596059530622235141202023182892609385078788260355914134699149661918725377533275227700799755729192665094444677288586643999335832531179165326501104858634092965738703897234909656045294133722650794111834423563819437164889137800661463855335450575015358506070806580121969561066710628679112166614843002328084923784117187039762007333578850004460347868864939166354612039491058873426196412669935507898881818608654634711896747284196392259131426207704959713683886632879635734671876148550992680300337037657723936496096657386599866470354508746551458940123654746255597122480368438867446404775794425378391529497766677509392720336700762758257927368200411420705188857391019107070853779204687332400052014040033222966460134276379923643487666916283486601330789049673838121996087896017516367146982034023764521501067091579542861000571342406983528429409558043150486499027102496090156571173520555980703220188760214704766896460619530118850756637719294698326381020299853259353641311878762895564207646291833179146786443133857933546277642346489818104465317734684271418315674528703658422853205780804015607030619590907807103955344415850808901430449150465551465702956309097130499311060886534275469027562782971193257859341756411423910263785002000472168371560232175915012036174360951571712901612598834981670969332792394060176977729345057542144727883218531113529320589038541940844487872417521612018502360705852097774361476254365756526319822623977920764625235751659739828070523407026454564302597057036700673510276451909725204285414204398067520454254822089600685853609852273765465118990588177218321742431027493698101332192623288773832749481295944827907744272546102501332199287503136567007343132235455151031338313083159720686552222327063328707685792660968740361396652023599136190013633533697534004898977484932161703636830202145260314645578796842403543196986722065759934853645239016497797539466760967140781289722614265468195745585426909710870268253738051914110486883699623140156906715040144629494752916122333522663259168965927383063698007326949161998589001816713239412958706786391482758963198538312828064837811259808603888858522976240027892395978643719631356656333645341264869445821372322004053244100816073472512679851723814898756577281693562963691280256095270230158795221439246573617108656219473239825334019304314122130716262483889257825011971181730065409624959180320709642908593867622445564582067997414355888202495045788411539603235751121971700380667125870018909976847111736303019957209084472386682401537843327308883002946310772118650105980592834807166067408330702684226079929554702255074366684773830785447080006256915083069410929278715484373318562357005826416599055972693817909210042900882680256819010031731787442663524731015456886730142809689941897775631820091253655001621687136997365858686518318236812154004565601084867329239051113410430689356264821737800125439576006400786599141776831588234143028150975244387830769683560605527331525604189318284199217617358723125950939554858444974008137406635023813461154213438684342325920544580335585819789774167083029201506381955599553702197345522302177933268434776416930992735199494007093446558638302737391106175762720028896537060167062246623509354822295010223464561197207589664109682906689209677450614480130839729235074379417944232041709108834241364071671287852125089985445572998821515349106995744943797129678138627515234268799209747820787120824224287886504730226492582794807177030510880124864228331671558820690108866358461008265620455848435099848860549082011592119147091480954780394631904895260343919198198737363952919277835743629122276538673916353891646335560257009316522011798541403438234954612235550835379920695659314254750141792929719488461979960759642119459984071874514329395568821727792660989233891020109415396771280997996990637679146032592192500476863503714421738115153088324809428151109125780635840053962464239860779829947722112728988661445585761660663552071326263044983565417254556773182533764556128928772004934962462952892927347255427579045077138609086236042463218065001780578571688825318936986801684238491977716838322785322011203925805142607585047196336346864693372017179335900314820430031578889882745422590978172844081602205143484572465867653451353747863989160276946175337571474310872620378240272434487153881381631211786038180134159739281016808226174425716777162719595901243437217837383439258498405433725930572575328566276203937275142957163260636979772788276337212327324287607816137409496223863248532604309212780538621082867083306357341098285551147603066611390791067921127946097291541360727186461310114047241532193493255990281465834201669155402086795242702663447073285132803597438107559535821904932654775679077692883460377909325197447645616910241073446637769339796688234821633432397137033626271825853024901499880609138875866082534874929028380921726698682205717506485675452984115768098457551504392289311855235710530487874018398928937076188702968873271388859796229326948246439232453141225139479167998682596945813029832970287810292594986329487481572259962116281647344904471985083725359117718434373650718427133022009009157415496100215382294304076269267172235613317137523060999975193074443356350809200801117267416626250299894535928081153179277351103850047894128246500878681973490887768493456381755934660463851263748449516872137652219579056250052457331140877548378142930502816718733715740797491894911541511758055934832409842927309797495546941542387303941344970702733160774188098498866151231116858337828906294706774660482975552704422728530810398716828343522565767871249875679339145176182083457384705616786192591639956268490721931472410779976326428948133169979405887940582400325743483265707285918609444310277353433552691602178587558190598757048018126444358393617250230869066846115533254039929275065624875434939128595945255949763438994468537191607020587328086273620116852796451208683950863660958993925539776722207683990743331476106740315893337187818805404464734354242149524812600812107438221163921229342370466934887467488799264902765887967735283099451645711548203146660811027147546122878290728079407944309922421183315761826122275002740519838119146349298597088532536573168821223791403735036290105136535506177944238663139815504905142671270180115526579645200745791273292608806749995183976150485522833778236653862108301498701951881739191415140335298769188423867661242593551013219754412192768442119930903523030002576744345174373593866560053330905654144563692432084624120251852184459695036207516801976077422113853778779925844312154019842042609631098538399689315694344154933950514540995219035602959803044555710644897841146072834599098083709563113869095916197986282824772089627687178348733981187989834901057935684592345069847086849953061378833389747023095173354617457224362825101723660500271203088631894827632352835195345367098054721756972666620701139795851110591362380038266375722307094880284763455628376336785200908670351387794510711035412600592479078570623730671368236702809997043634715878811349792369556559283740031655887464348819566985378389620558311891716411273720756157048751997092362289693105339264964980475993055508424165707973759557883575171144875446000804965843580132390241179539486893396100115242394405255925157744625392479592531605331685907093503470749731409480527758000057299476689600157047098025755913424384756364124576913611037020097995380248693959459781054688861568379584411226047233382521714721719076176109546681094962570365893664267157574178094108985795883144735976903882264706260839459040642751111238152552270013846109247716978560924819259786879946997383323393534497921461273569431809657277816692029031372483635126497502777019905370194205882089007923656768004341369121229401492084859032991296707549621077520151108070930558060929600626175637391067725944309022103625424215412217736690050577843616198287838138155406798079428989084494003377785382587630021111482130647892827356202594275196072282465633253452511591426062045934890676312460685737613229361538228616193283073119687759636002307150992168112653373172638424887269164822282906375044501870967235812484309470041890041351928577771363395191809426187579168567031821155242418557225900253908994882074585104893787776895910702342045036377188832737442550256254204568581104090996676037383185794229692641775555462042728170753254447660593594763969151114407958612055919549404118594311910576363840376116689052261514390144946383529586842526388130784715347184391017313671612230564035810774939079403175235523390472839207658583044427757844346472475388162039376859918548662742914256314375953877414312899717934036457441862381476865328083591201039470380000586621301619207161124860808177094252334508041345682602700117466853160636455825778023965086799886027308696877465624188073577403776179734198338552766818445409251708185318139003781605337415804811527876837202559984432049235520444075853429493470887538981523710640516883414367293201086194543603835913199577342406607437205521551107174072666279226799343430591574916829349793222925212444763146541766297948270782102903061453464247977538538867244055002673368308704079048548593844045701666358934971698016021813711788690802539548747849887766324882277826712920071332340327920524778591182070917814715750594480435642676197920434203916362487598373402786474221422883972653654947238552309061370879650882104535051163919376658752348769841199695436959889374200185513581338066854492290867174468125650659793148262079596479852211354613339523948360760377124545895020142624951835321522874937631178229038504520363277454024301755084722110835967067513676529897568871145194399990844126598135021631366602496246535178631201917019191200013725353826465817370605182959435234781608724471613483696886051128549416341968565582429078280443257752115422307678272659203374245498531504881137317420357128662487247425062075644013404582652107720642078816022590096173395341191584716711361880615558752697555965256742232449602299218011966251432626056267689654613319876320656775977506263115153109872898989525662797820562583860137361262060146873534117118922104476668971507590581960025770169125174629336523714172378060811119978058306447267917000689814245082928586640515609656530327038555964556211817120384607018926770685685293419925961401696401831801994453164677218389669535065482832377871395625479406727640944276860844787341964985483190488900560052558799659249519162292356345576855157567409717471725738848451103506572611514730063749720966749510877080284910655797300025155702846210718214047278043695597301418589528208406207467868995038132959764621282729200103136041792361536046781871664885554942483655938394843525952478517589620723209009451673533379964620998905331508945338402488971725397933958873663287686117236426021876207427927906578200539877556114457635967122101581176219728966946148394204614286248483258121892793762050958042674645872866884966878074383000548798463356445101899387291887510822799660122313498168317975218145411751775307619119433690583883845595743017105090459097809832193768754616855655811826748169897875549729287226353095612308625781634779054831373455630607765555494552066346993320498342832354434623695340185993847544074532282065336245730779960335141326487737201151660386273081448842363168649237230274453881831609007869409359180545465334576948210857863368475789959445287845541194929510377984123786008804480629773135358638382541681676448356720722966579127128235282006187813563992505154874240514037890939613953771958135692136413649601669345416400962283185545359675647910433258109590128237200848241793629964664259666650352368918619337849979996856142910031379086298940166890294481186204929333068288526923296828432091696648306189991202038204116584623223568351780620386710421106904732118150371610935158444548787699191318194016798950327775219761920335952839434448110343594016038059033029772444272501477348672981838794830926439122970349010738939580571128233363950521703549904351197730393518773757179885530095826601888782372460639151199073801130418899500970596076460802398829894266725826314353279545056314860536179487780122125341175157137048624718782117955766411274403628341558764702367738073255022169365216591410894423834953767017497133560174220378567932874018813116193160731836361591557660811758061944704452583584536529872845398915631562528307188884412471671527089280029418335584435066274982262953717764037321991738915783262985056390587226432152849846121796034112710945008430161180025203638559515456908811413594921600144527779860888469866153888792552172564670966764555899770735886810768009485346761171879865337390950349504642028693529364550523975010506583690048135028480425291415695671446535795477059933012200094284836048159804494282279922607010448340200891032999598985316637914156355757846800777045831861636069820805843766663905905753251779400026850040542497233113440402261311868468521380175394753895878761968893975896840680375608030186106505824667502082627000338895436889937077909931106813627772445150092328812022794883648815303304339166749338920239295153080830334226515662992911698626291715278909210551644805979751058573090121681604071462173388070346475097319549708386783850482556369842427077116236635944099671006123015545247700042639958594987929377468417950434212709956283614648764867113980705705690082395581454540871544803633097206036675305257236398112420464224143577430926261157793489375665721480970814890070028151496533165596574246870626817486083150164142288437742321610657459108297772190585521160862159054152343703488760073515401140373109171455080998984064927589912623928600047016042023766503667190506770458379537965988900228080181676300934966740755779875017917999055223796603015801350295671170104190256113664007961895527812204145578802097354098206549384897035563703033285250804953902163176339736801565691740279131361055306819934683607252068479231130828166375222574326396657583312467666308673533832710011702383508872496600996251211093116238389258664921260791376987051826003007990987266154180303228196717702067847853507877995738855239258382353322001480914113033707678653467374677689863611545357051101680636352327213667290422274047182164224190248585856519383415710430588253379702255155783521058311268824768326624592145213171401621094565870093609863301885623000745741925341192157829247052428970479677792965417346737594334572334449684492687163390879427957935028915366645002164508950763795667688067965829902274590532143170616374716130386637166872746923774788007500569210948155483385862689371475232471852999187604077225586642552955536052933520327622714320976253811407205976375789637675656726927234835285648443782780902400059196542352104152615555951408962212315465217278461275770706383987147080485778945001149054524362157297605360253076864336948319012299770725745424344394336096592057584676669865506578232916222608133725936888530190615358705187166959020982346890520773978048374833838922944649327099693961668481989215222640718969667733710217264094844586238995355903103863028525428700389467224611287579444040323156906932303244566011071892334446373901458666930238025994421797261209660738730398587707014523404672703892504299939012702649899309194297329361842239681760582914577881759543075846978801464976523941469784871539966900799163902675367034229038744467802639256551998444340445318850447328422467249114922953000949128975624789539567450142563222585248307901198247821226011304575994522859285845347032021284702077023563833882924123168567710390998126892711681004406723545025275498685524244880504247728136317630612343100141548838845399002839150184645151194118382117430862924435811871572858659122410854154087476119098016509699825640664378789127535607890499052493587393759827968121187472818175265129387095900081879694079331687912412659788552094334524995292322458401965106065219861190989143565981238322979392641599292121870312754602454789489404016953923670057886706768195019697571877032368112278091036182372254759109311192011493373468811891382196304268301205590885909504090723497730721217288743108214406616775000163213450467676802210706711407804926123323339112708390000795137698747521707426895310177374163749230310479504619815084424540561942692404166761825875066076097617309549387292419465652249669768675366607107712432866916812446728811158209613682932929567125896066754539193483706593865936563666332129313043939918000103900369526527105142501403744130288799364824014631984944125667774240056632023061215596776564747970886197185164324055847916651766273186918382983334631755420334638906416612208982905211649118480253363158622384309333803056950183687265167223633685563816124818598214755860051991746079687512990087746529331373289067839911005696821056869266458118677635897416715110292937934602485131721065588102683126374199951761494811306538020096026943762541764785491150986262375717043994070554123833447925690504377584374977562931823428262533360470042512099535055281804769433423357673378898809886047272072504352534837686168215206307075194044725315592988641292193205463389441424945611152609438664095877232797535079508191965728966019167690263130847516946310434554305558197311499291745314252907458622347211112732611320328145276665761192378054669961554422555887559320016953639971803613564433592173544467500663152684448505331267353494862756088508825647827371342905960033381272386274480100954819777797387744089861482820283028725849392534799975255081454776075407321996168859826259348967386853142484396449439830174769807652217307582160552479994237261366455892933664280960816262867987080250987543779722554195837115837205436866766951529350258964857164796294515455413213563632616370039015263749088420326565855902316011167894091362303626969784682641799062180957025988011545130057456592955411725142574235210677538851618752000603537876419063141565111391452520151491581773068977479362417284844649568220712255550454684046311325377715037788107460119080502161761345303452478107361703766110714175332602010837988196039598036478815187584619679056353394406972766225150791506829409741697889711371613592715528551758866504083037628098100804250563248839846844168494376419689354192862609531974333081971373779998617331741859231113421991939202405402371512699239319682165747222292117840361119580255312033688746881482919417286938787268739494933179138645057608198619383150919058063722192563857204830665650151050361800221924717168029495255983029426638010093640271601774691721192653427448808501578541662010934536070939857058467643690778721327783371860375672308278872572194618656614103802651547377924561229509313371508568698202792394706150225542704846354427250447411702021673551203753292313563941229716805435605471852633711517762917956585907836992078996829067737969161996934129223644759842848705487021885461991971410886885552543661404479139132713999439997184078952829683439623999333467966297199158920745424339921014986028274638410912244220506339789615277317979301235760586036470478987176944965898220596947178839425709779313226645067201105407805973517969277508042207035285245784538028499602392247261289077719277034003622172627902260781505240399998609554714363480001635933988776201905444757756555929694990964397055292658523037853387647797485825809833182424416212153209305755819032997365306567140264722342204674900138937611696856167651993794113518756088483834809770485280980663592402047405135219338934418132742544445271828790379034054421800989537898245524747136917362113019515765131798961649929776722078047727364790650991077562987842930491247003274505875060141026649400395587463221191783122512827242272801961681419113651862949099308412048339637174906030854178211214044351145766394178397147809058216734540905349816617482749408260319977206930621911078961144753267911859995722080351777148160595358686871666463821910740828955504272526168928557712904691110511281416346821548563004601341006207052089446958699631931006663553210305502097258408716857191515698790627264167945261857949785036345881436000271684523981770530805672605820933788336231127961812661147201281466432571876350291275220166593699634967890317218119778554151131246045908727721479761825390247629266629906524451523543695669404166309958707302932820253750623624004203699888683813002134679700450672132932463364409841818499847929968265151495283300269947602925069222281505225346909415126977500693589939423837398579072470216742114705075388022614395407748588848141352019291278917557557576876449166958689224634275851855506006320243413662668422880838955403570027260033632449510461294096486264536372758996074242266179174863993847578595479538705679871094176702678458023369733661092673524378830179175746524180969979299879666629575252402815329373858118649823963718285832727600221743813661544142030173467593467813030365498259123194276575866643733395620788307487224192171495267185428357642518670420166083799137620900487908451890697215188194866933529716134552383766622930405604933376721707074873057503630200881081880821075622694085668401656937568665814637133740847013745839867227227534423265007069202445031044191409923270105291300594668496856585056274079995746946532158705616465346056520210764703706257760897448148164053058951673533225993226947969820213909834442927202067016311840408421790589426297921268831268614147168041576453950835205800443567576901481235856665730171040157301534552545253427834200318983424617958301217944004548840058234396235492112154883510662690485672640531798114763617009248446260280230643261964756362738553618222287724819051646940574955530762328663119612701121387129985600979034402705980046692137572227439625809611255176386925095012386208045716604739514867630884361439368936197411895427935154091265989871219116196419313444750071575262962197153710294234335879664283625604654509780310979606355732727370295870931739416002691292199716705671967057533877046789936559772652785505666224126913562731398108278602313549790764796063294849488357016865707787435723314270686339874148147205527976846614738620158811365564371802491529714952768062202357700545835444114131701481045467653941940243303580714505912404755902852148176928612514500021429097603085556500240467066439586710470965874334925072514915936391617623339211561741818614101959755693406813387714738756201580481971132303720184858983502637710836211099892198166249649333273274748495331324972346616686980515962760761174856437643950057113093278744122809202936341299503089507787265620246995031889557676145918722428993217978146236122588488647461950998478413460506888566724892988075178727787272714725442562162179281739129842008957761544027535969075344074193814310218816876874164670318455458172053958008078055050281138979330007970294162594791299378695089754821014913709981519893329849464269876369692897475235257707381418634450078253542487369873581649952435594244056790181908798507738548613704809473054551771103612359043771818203015572689560358129539028261261205917935190866345018145823269204448376873992999750475122718970979880283147476142012137810295259705562795713182967543559709202259254538783136378691275234150594330773097943235294606865917671917712971501566551541270564905259595505615525798279077339051161790849974301797882122316752974763710461755452005721686837891200241005369509397601180412574886020706778167865979642938032867841044788784888580396533288744904003742496371494278030456119843064113115511138466096816707286804776003931743005065056447740647627637470947908994822893709303860364621921445833736652053406807292307877231133982292525922756772175867684224722128167181899881860566549080744611321248058760355756855566715051723329931774572099546707202319319977547737834694094901680726936350407862708137062538238201876827038760096666663774509252120643258891009033792896133256567861933235888802604818133857712632157342988798670367235350743612571873229187667048496212304864935275870929047431620317636817313076907231944086232579278672952113788931284589543438727074729491787184406093689840327323763835516695021737425500443822364758402258824044111071110958588503414511525889004228797587163355009496003581964636154045812375430038802024259585340428057790919764417568228556648210529798512502937882462115394879802102056202464692299866243930130581601049579192711360213196831603977605555420177228392939644223833601569577843290952644470803860449756913782446526587009037383421249799371559490948653640998317512009166878743391028749578064191453819971253654545265705988672429340066399888055816414177393186998127101453736856029677057315539780157220151591276309061815133184641984947708639263279017040696501721018623696791720389676488847621655505574905779260004934239498861321343766932146956673460897722114126415873047815026503528383729025294259028705274890580611731026550504291784462367538649834896413380166760226522768266183159736994748936053935915863059141979893593928625122678617641215588755898106417390170319268443265982917457988636365136205605827816655238128417708936271399135518276001504081040983395114332583156047567968567286556715113937400596301798433254556756823024494550263268830192718029822949391272615733652903906792355357501540491939092355486513498024763007978948381270966973765675155251384054620830554231603119061736807494099007696961313728451465225583073509958327407309863662216361101537691918207423235885213263157901041122657348682936212393186102767065300204256682013486281590361137317460547938200170566829260056760070668877364898390809354617321904756117313334093918650578602015464463354976205197164767713426295263885719129870357332567967345127087970839342062298313104681671626949825407614823335702068750380363261531669267312097440521634326015033961799067431500884562926059318649202145948392204660896108566979078462257674448286103968328596111006967900515290946626888336495623210355200391726760234100252639435360463855610315229673124670740370420678221872628917118899939561901720016753098402773609301019931328329151308515048550478443036412325022268043188157989721129453406075075769218234283825714015415009259608116202932014510653949548736209762313988931408532583396061506888418104403142844892081086414879482049550111127775279284887620160779536647109502187364698850336961577397765788972242431220677475409959666617822091699712359720222734031320432006901463646853493236252787574013105350353701527428460355906367102139891189473111886185289485121635967435106242912737335987866169992926487262868700055570754868465100991797383438723374267331635522249068322345397278666290072631301315886598596255512167628249367036725871082737552737140275684903117343460634820885573966673403718516973997813862879056228196606935292287410759469488718955161918343576425951013720848745807586826154457463880061184445472363417026298920055219304077162704277582077805812922775288289583296862134580795784959899903496201224225658389085440954233058066890962551640639752794778422903140131586686007181787301270098747381471745199105454487174096192883281158129062577570873047674767361380867742022193363497886419860475328894017883769972449120496303094697082826185837213923017357128002752656339496085323848532143906472953404163898674078698036539166221487372208980126038319339907520885386850399664878015102800748406407015506842788164730464581677062155011694800331207041517954721019807475855415868456979452915749908199092783632934082270305680398700427384575907280734814968938346146656863983456222791234793285740166316135832299937617326895136302434713440108659272492801283220139118254106577438138816914680019883550566600839338693321753325440991407290387908894262939336520925813055614644916883839537060550046900270637812604943088068696580232920881904289191437203041212041047530843785071297651709094831276749040012721340095186654506755812001431676796434384981624236054314408627726516158132503693792444779465620758124986630068308307877725415082308876414293383735265432547763976315036798914038850944393331746040829727804892045376075236408524633793443308578021342956873032325835468388080322787524913032031967855223101326194844052883737511270343303693237232595102162160168395480955678390014496800765034563363694929015285746375250563776774803708205863924824847347825305665283985827185484292294188739597728138027488571360598689600404079434819887295359322304327955380938117625714302363281927146456746638535189662316715532928889236806668721534197908669645114867984081142068974431241596163387667428154266094423303025678035934175331322338335403740134320599255446252918600202386398446634414073434507864296450497309047542762455171925883395369835525469152089720266221810757794027146423077525830308102372401357636142550806399196586178393013082103526046128939198457459942335167763853948420465145674583077286967839953406049225656995692226734529472270693323516080455707433687565335487539839187261151948371165399600576218144096210296450674198407383738637602569925703521433235095236456976947644735456300731415311155142842919202353104998320783509704193824917589158093806868880572193461330583770936731768875157568014648087033362898129551155650421053005499336297503684634925981563458589004530862909141289665023555144994707384670343462518821843189057237757376278645622389357641058265331733923119000025705244247365636782962610653822983512136777714677618036480198845483474391697410850501700389584990083248570022126137068977194576007228298335829045796105733796412617316814809889281918028930002431966487505970599501480978746759125146576583066941638745862149707663906277236940836224056005915854056132681174157032181456051785313397677998548337299147734358719303186706991414668562696950290011603524015660275528279146148174745151404566892525847380919929871255485994857984667165874530328208827013703464054508510278806359488095935086033979202401603768809978501499200542013072441466543127484861756785480712113671971558214502268831770930835836020856232101534854288956958625928088974853115251880140120920280510182788407149789376099356117676831375018766033994387242243269702461479478096134635876837639706919405493789701340510175515776923006760257497350216967830612838356546882558238014557544372169664552419920586416238552294637162907798974446866590457722118552057170817050495962713776176102146860275945914547674305291015901550035305916373718162716354881455167775496472282436314420844791347818760449658025757049398621444876702529073691719109393061052270902412647545495124820319824321264708377179410226102842638422535147849579175029878665214680920003009887244409399087773815863688472348197949076328009053869612145912393138585409823432424303110654507959329782983100284155855484152543614852061123805855406154740155099453994119435527698207536215421267485920356675783369088508975291067530995446227180682904839230285600872082689081775038114034448688416917916063366551129893176150736478366441545043880774548565992328233677546872066011897621785704006802882211464420736624333636233409801367337108177132734853654731292240942687836954992473374305626794116411031675421368986219534805267014452165942310589333754702774810290063296336550154497846139948522265996754194015377310323533945291633353654068574534069969438975902288423752704401151862352353757531743712353627286862433923167583984468944846663949639786056582606159390960301728369939824261949618170918222259960931638157452290773640906782615158118556398091778509973407826081298600201292897377734369010335522678839866173690368252205043730125350519301302319373819349732265044447203692676511176567280602820717650749691180101297193341738210650263617184366045810193918300788407880172382297584446519085524868215865114325136317344490267014165547473468090220160927787140921205337360738148344481059246562419387583747474702913236665351528547405335543560832738777618098976946713045976955334449801985755559134459603263999600695613610279144823738480822262146256022627003958716745183480543759496294529670326107018587672972284187541478581321591187101342366612719231200455281358066281186804034062886273027253261954179228606327674818603952577484725548965799484384499266192567214830522693906560919472847991491097325453644322803712819594583635966447400779062299594356921593717437154003436971846039163424082339170982292524364929233651261841567398124920475722046504702420974969265382586821396350569941409398349564770123314163298805680749364641022187013707651228568693763880871350094698831435606041366883142168181237373296462909753312572936018600361261525390764853701843400913821526166737723277485057679668848901937903100779435561674915963663372557374208545166461751961757193742657151585870420455654097912038453263816450652088940577514051867609578643126589570122140506056580301819218595025576507619788720680585491300602736848458023730422616716736352499930620119438640848041238635440650304248824873685688565578669556176362390207229128860061689942141146283285904683740575812096347452972678672490945268944230608524022869343128943715488607749337558191251300026046222252820927672442977940402248090615230102429706157391709893798342578487928993200991014981043303316115908014248826016025476590053617042397816152627217479872016161636381920796900611388048214720255529518931705145545465969481352931926593691612500495758255971994152162864538954913059773104871387819418239077868275008162994215304312393216490928059278460029362699476875205046338897002913517608721771620508033413495171067471052451738899551051173326916039515631090283419040604971534793880009102173050951601447873874624494157007693641010506995904530883153726917233567116112236332945211826729544900901523163549286453193398696291715046124806857379082158483581957345284025737530589637895531307737811029384520862250532779925028353896638637489074199332641511381877080001173751064679811474994743887741911296699308329788630663391211439198761727393350675306744438887670383552286431937888137408015469834263758769484366259205566219140470274972518828030993410001803850158437041215121416472435353528709579345129532244090365840367587307616056530436704681472650677577551884860518543180463313066673375585616552240096446477168871882788636648444067997569453568681291853279875197123136072975425891766391272148320239842588692219347532465735434440930280416912111332258683539886063683300259885444872443700733520636833149711646003605429283159383027163455019749874023379711052753192799351837118273218501573849195210958294924195387727423034059281627789960149376709377924003900030396632444172025604065864503274242448040733471280535433210350349415549978783319518534849006399522909461909116695688669776372510815990660159807939890012851806989281434691417877262472048632487761454996550291885416698161507544498975396078832732038653283195429426178566060102705793407586947657345718171283683724735160265186163712724454334791325449137849533151988922314419008223276007650281102630885936560429715565747087062173100318147551895488055068623862369651211307406279580596838935200133669521724817676671321074941405393238028782294215843617625192993921364178436527669901049543804656652191771880225851063805803633301459761804686001305037268121600297719312735510484534600650046854341831313065981742851522041124443778794283904768589925131791534477494066781828735419670390538524129911474184537974563034120253450616944262480195323707294224426113364701635836490909786477179106155987857250113007601672144116847090042153839132692410380195884443389898579629403878533191429928253304958145047585305674999196047729647397737920285911647126977216981849092128506499675333480350969799923356778034555877947385873553499866964822992750981930312947384839875008715773382277440141815140604182763195164793183780172746111448525102873783093058277172195839039005231586709056997486717581214727995711029986586020021558129518470232546228305234559157991468076962926410885483676380880764439968866819892154983271441130595502021810715802395172842999703751552423730632697763252571523239477710141415909711812470313595065488360192500606795464016719291178568278938337790385922882260852132616536005916235573359837239460312241076654652284200386753838323723460601892887955281680346186571830127036860753093576283526214420540087313694811397455846868092307651115657758651969057756895976795159782803261504238661150914557110540097447883515913098356874186604973302533457703002996240710537667885826334371334087895984421418588150196885554254786279953064647402158460753248341565532134668286314027012287667505017880960414071926437373711471527820210960635244762687720140000276846258969274453460426888542720722269661403639270490841626544509257279987298620768154340280703828007289824308090775334219022268586032023870136154488914254908499619799438662992422427440939619831556738471033364368909283912057121657577846321450461763578318205733901255921907093750535874988911084948574952074516754349190663428917593415712404435834699608739327133014229612181422629233665535367831795618255180534469948285922963904309192300443442046270531385263108267991433789498765205274996053407172074688900597931776643742855346470176740015394378517477291150586375696995373772042920967268431117926060056523057692707352492217843768776621849749617462663956619920402501732106028043221169983430270183728385145278079714143501147637875871798846983108766901136393075219877830969783302169592166896259528232660960560769361150442898842819515946131240356007160612935044392798821015720102052528632767876813350434972605190223826460708225922627248599979239087322503804080489814520740653620013175845966914824165716093103153378056831438588572551352402366510722031276660862664588529106256982601350972494157458894696858048509581044937489832327092073461200061747849679153797436568265659675342787505630955553596120473670481868586196702890020520854699655236433679383070605367911565189756840463248747324061040141360028905503107189304701963466200933585147998563524470314844784729917633343347245844261268687627686588789868446414127845057057535713388256059997971307593971888623544503225287027567599106527103660100229347304408057367824762470369431056024326245962693804159242072204918161071803609501215251217999049421867661898735241937844789393810603917944232608158516332392598829705598571476598793215799264147046651227355113863641287790464521217400756371160515332810372543436623770483155582039504257572358426850278266845986494890542173812160881723444866031873305808274135583011194188896470476859415913636229802424581405293350201434737674071523066218782882121719376388200972970979469787440276148373540534119086380952933785221899426800942623066522829376278281917640938977067198000212203405370065978668205137537594065992629256220811136588946495805732589128215403217215576458160304633465715970390403252598547439173724933995133573175926652748989060145258038077621643616828750074477497331273900616190414615211562224603714001504634488339495101116461893642307021446585552378003882910706725313443293899878563285684628631968558669299471014234678177443515028532529544631795386087413335031484862973778404012615013929716061760311673759240660476574946800671293952223610213382491895141304266399368864120274574400056002017963402690827749154575922055478392476660616149434057887415359562361114915516480138763797268428535912087810907415085554489465516996031024327127153381706057980950415691858129873385110542379637297237283745179803679945020939697445790562743741160124213451708488665217917697759331579962293327716750984952351524709049551366389111735251934365720562721483561018466677397392367980873197238919929087173997242267241406024404672373520328512436508810243321995504965177760059008042408548740578428418185488870722838676866359000258822525150399635660190984167271443830081582330487055204857953117299468190614208781419605003918803991369121505576658018398524578748919310755040818676391286803929099156954757492984583857732137952370490962811602962926484589976917289995227344144174582518006376412276977202902839255183646927235967030092746419816056206114442514083348853075292936680708632516176637443806324261360632223005697474083657308688371039334182312464734095378227837008680402652878373874773056031245621401638168744633524395702294827901545349400163338565784728313376412909070418275390777028491218533611520734520998397297264094715718164527759901498178318975435646450652160676959740257888059295373096802043643140042919998001163906165438878871717483397114022672195360663846464288919078338820970303921403653981699864194003999875438917784115774342490267379467440109711899497257086198596087108923024590533645076993764816690788197428956284839783432461477845128520276870350476382366928526459269217201003157188212005345090508291981716178212996293131726094119374372612104226152535148447037304992988441759961525987026945405252728354104753364099881430329627462224323876830554174783356945810204773976432662822656434064032440862353160297417875610101702857987797431311456998788991254629116660965564781072631691303021268498343375022515235889078001289624367014398601388113552497322277372099670653788002031500825955495991133526165946223506938260928413432165498146987417898893605259733981307387755566709083238769643309236193213268508232068070006003977155342442959546335758780982396613899806248983218590671211444390820521234923775971580964539216439742897232625700015632895920959461260485858897259935980341038178977687095054835154286007832437308048375735454640633336744540913990807819661297499906673484927350056257927312739030160833220204407567352860452201625461675578449781055152102467933826079147513568710391404707004106145490855833815011515075631216941416939661423624774635341168154267912175295792971397928700571024328540710902077881874334186066598899102505400134177577900652358143935715018794688216547170972002964139679670818961494409267249998956360198529805667402827311007353577521989139511577617052130184311444095561215354297893837790803335790211509216207721003482067971437038830578547370292463724543188719563107680583809389510901514091378741401376281940091897299696437115814665951378768714107379158152260526507425193554528531744077654260544619818265437436581994690932626277556890693288043545870621548082934371174527563554178334562662210022085853838576444531366580108306819494697505564914376535572378134230180680617600787940572740768750531559597504963486733716824222377786558935984579696383121893261651206937978492410151487774836464589901126842488828343504639549605846815770264178253410263682125831136657711411452091002150435118113263540423061536156841124963453533441373970641759228006686012320539046060227821862544911285179853775005941330997220099978449161829073182916865049539919176909989134939539541685397216403377945246095551095821286092698626038404445350885381270276319298936510125890772402404411835841360022146481180592677757840162901939987804174880078491386850242373978969269789027703703072997979742260549134612389634592582035691805095522201663865011373336969034823835075484617756382259081222584368587078417093869905461511133092699649660784371532097973209815387596453380324202184283994459799086901555658633391298727745057124986724444170254572073936379273244926178846903991628702864775818599650172793482420082074647513470301019319164707612294816752253904259734808469180772837092335647570462882185101118217244602056786309443662232764274913789924861959832813960118072166437450069869601718757929830144007301832232470796436760068252370782774239528160884087175467277994560024222984901146718057153973006572896396658522172411945729406963973035695985861960365106534504778918432386811253259534774815936710294894755949818920197042052883186563104573249929841509786125123533190611031236916479769188447010467022911509637743681230226788998686474893041642162978703189515132275717390040427837886726635758974474197687556912001184468106536493238273921216938221159835690078861409287945143386805524405491261761915282965938398352908293256966299542608083210401429337212898737015341445445300033151615070915491209403471766017174895360565206216586252409309733200503562310411965523725864762483163424323188727274209211557763453715308978864169387426317573970753962847363190940723913741819615419565008660900471055357160765023715261703648619279859241529774094005664129179353176622589135612247456733561097641023449540322521780427598392888586011918105786656761597459812271773239275825933944096064236410318690039270860148390268774464365525680369039930366245644164937464691500496594441375115930313530827587064390910297770637532129636016153214094540660843942315696387518180064545696349849831808086305395836462558668546628224674196966141995639841873991856449275208774307295809926246455465042607994440923388890577156297744013592843656295470142543171858868025358300502931908245037894471589310428546971495628642875242277229039200079417507190988145270615662701371806709955938154221839010162252038479244436939975859129533892722889352195295430245194949202950555296167733430260783235595709530705367345429738384832645785755829815608022990826891770783290550438595292219563325741958256878892719492058738262567450065221119533151447326927040775850607503347421736283146477857980523437716849281750557782802919890304055094859084701258246320662249809871347790133214981383703526925897887932419301447509222762142625351572156808090294044802729635931249960241788019423606942971483325870323593641633053599106467694812817766135220726079310767463949416206930258925553816488023425432194325621543282976820549972353172151407968621232323971832858256750608633516171068767462808746854194642585055341062460190610260818217018745198476889417600361483439492681299249723784021464871672472310460883930604565044275655269785148830774517427616520729966710380296788644695444024111427220782151732816941794425612700164499594797975632047081479819770883892054485122573602952916879657607517044308651057238577671158745201402288651016093790277833535128387016565257046481568831444127864531517269629237920396121322980994674835815941706995355522842051252293358161577515142511292379766415155784665407422608148825574112552306610757413712732134022852290819685007506403757175645832827792762146566206847681378237252364746475691002429308997033263356755754357563976854594239357063078979994785742481417861688441354846230326569834234027326997041815929413945250050620303597518657686016350853329886392694726647466408418659589876479141799326368998140079886081253728217720744198950477833229486512749039696276712681507654732705546176412867168637753838290095421703357461623625159836676457041598897177917956149410792523490662281446078237317403818263636909897218793576297001372807127498075482523252834615804457722239999366649668730102558986420557610930072578401268677187803445761538680440685278376236812550986781566288056887715019780606347592950953420498573062661271266517850060108272396162523157384537244819579935612449463617315789361612841368620178085931449671762982652279603831439002254100168380436800765069189483002571630646328901225008252373471034901585560456214565351076190313079261253274329838123396287850275096777418246865967900203692794330717369787459807242757733172163370686220822018221581845627098654931851858111048051923834246098132001663344203813823010209067132721930783765458545948173467112192158627407283756102225151692258117451063823435938196810664674360347436135056678395997250344744359770620322574815522786961805942790213459254356436111081620306431137314284440594431650172848779217163513005852456372178017038182272926391293795659601367307733842792355865711816841417648031185676567637442112918019272023675905401798391583453248140164931172133840217348962131267650826776937847513396290897168239920821642965899736091462064860059349650044405669881555510191359750096595407025470617926071527641064373999015326667644650232470879216672167387188552089697238148408118457886545209449404154458087732385578999906123844843869263068508083767830695970148900640026694981306321927072917990172899907358133651880928958452649031455724014334889709545947921828268956140775052691345630161219131014669670812773553648916016796086691558964651725189716993213655379673425248968411151506385799421271402708748084684489778937699115972979978809113609006144042234452891441555444903805524889244017124837725259266539362336327841136041020798182570668887382250154500117545990682210031639192526485472311813746499717238166667167846827034390920412618482168132941263785784804142643872606761294132311141905921277884010656824691665674612690786810422789166730220028196868169578001831760552483256090976403596597801783052355166034096804879100742792954052032666288380932133992312201976365098184258492650548777394473354546077152778798768425345361424466029822673531797915113197977380467968789817624174819058934969230369693211815675731189539840676796979043865948411361568025102946690173592427787083117452633518770325141271496968181290638056188050923920847165154695389055064167542097644504273540246310404646077251856562172463474686614715715958693280726444445351824036306746581338408727848664742247512110067720664220168197490735804024496202612425898323016835516124582125387533686583771028319294705203751954325212137204972856890584469251982238218925830685572660974354356877234743676623133188302225934665656412993253733659053473365162679607535550955866436613557868745381884334708495988562295006699114462099957358852196284334857496077955582358141308551747040588780173812436349610161695199114171455255523220302467529270303688131965497620801901020860127900009039316566700291208363364203709993001028051946104013714683883503627239162263142708639811025450299750815073037572840982347221265839633222020560646053897862506542841025218709488264364607772043010927370022118103983123154140070460843293639677013340350709427122315871782040048430551030131953127969808425986574695367923073318054761783469044015078206174065647608803001799812746870633921584212680714961156389911811346455925846018431596124495274693096331855225602827831704137741846736126264184856514180786085147098892855295307151742454519686486353315075196814231226308971328054383483547367554497851056058282453076754108409992766230065558322159592362434358368002871959567979466366656905390646911230630949393968190864332609958773584462263238802091488915131044365472616954679923941333362640819415326715389174705799898657547424994521067058605037054511407586974475972846693120186854214268243672301559310277394785205003621271780535468231213040028218150332313196303661266116356663673760632921084061083952776253097058402036705786627856341718730487172766635916701971012071484248086460971342134483389741402875417885675256548507241010015265466530969556122221096049473076675862684468432875866055735723142402787841333180929843848375070469237230881041414853431577864216805767914738406651674504729929191251398168258189031134330928294064043639864774954845967054879453133227143273379307919710210208333263276874149199184993200672143494801518321984054910828052970592144685462186970114006433451027339490363579673786649748038262663922237918608679624937242255003268805171135332126752786529020503089675681791251850885096781304824251031038437198771865894652793381384910598631648401852449441212663819935654548613785188312670705723726478413656356451082323512765178299724726552254054753242143990981050082836145193965344844371571576944489924221710936410657796571921805726941106384376992256334618803364392169502684884474018267854227582395728514964466202356689679069779477122835641404410466142321244956225846245768443476102045158560203611891873582166767558651342339252330455206089215474290393243763508218333947987835911611871473168057743840243080491541683643867385754785551279830555854399131446651981852741764587074090761484191294830838644542752595758327085090232244060048168277803774085419228634180338891624618807692202446629084227758208868480991200786835017194123113525116484915065165932371877972213048158905033276539865574277900631796635705958637638960288492898924155532405935824391392635276062261953981920836213670738965371395181499205794129422053150607912697478947977431883897592320371085929839791403459228547704599850574388049232927189855175948662026517810204441730452688203477902510220280137206311009815823708989483861060378854500505947904706669643556700138085830110078494794926817768410318275443332348058866228996083716385194850411257563806785948829171424421964767220712240557001095717179891470008730397769516997969602459529423647963908124846128274602056813685616622667918066721586742674651553665134062651560909077893914066383209384662387401931278652151169416465851598070163706998080569620246527922944074000600945933993687049904660576273411632152907621103282747638844662997124996374987657810575458511955070970823216693652278526244875007783159334526751685552115498964970202972778072064163138383155942712484959444202612935001507002065487906492713533496204536105243856969746534993985483190624326696881610245767402151854958658506480493488476474785221701170407259534011856212084744915439074780496446798843956043270292505862382803780073768762950418798103404866451653627762428476052475257510837241711874742730558061271621330475934059318335986059581587479920828229373341700701411899333034458386803356470675308408749926589497302132260032080106282250915954576491585361010610453281180887030937210571192241352324689404949707057007781613661906387856566785214244586927315179587787692748161559331329705465786547910689197083960785471969174323788478293623669576461903958445527910235677052974102187059241886179558644244640334287605068713274880987515051139319310743358055061389218306501287976975955889933081393354346628803402739947624877194288764331702357474630119633248848427281225664375533259164929052030908920594125688886847426372735363175863394526752203856971304112774893273492499529621204421575177881206100905829501028738728891336792571566769493318984346922591315017512687256214567121931268382886558227045176187992754795915501356807878677712677342569920296115187723374955154192245209701011261312019063122667911156275696145129351258439896627483197682450545873591640444463911440172892953655026291420954345375751262280365001833898191852862923398969550450114878831746445608084992575682840990925728355677695329412225759857177587369556252500701031728661546787422776817055360040452798101318740425933930075901397623497386628253795934956020108023768898878521590914715827163957741446197521186381118319722852388178996304301122333519126965238044543218123193598134327378206267865601646753534214790309927686077351467027307273706607331872095284385676338090675299731548357342572786206373636190246373789157336729821703450095237771455275206792821466699325520985676079238688668248041969479200710339019172874562681469922097441249331083452366109957841961139547409217127103530952949827263951774954169759037773210505125343597746122099289968654812388011249291461063191891506137891378777740908283956914277627522234775214303624535551220983328278564409349484267410084928718148258652996713424307631251040534210167954045043927867110360314985122727355023118301470315366508051098793541193374696627893883715662606402154863885328671811988318937801253131110132424975069427438222954503119031773518555933464804625401860257782752655058540723047346872544217556892335978642288774694527913366359298764407300616868610012270873348852377056086790720848883020349254752159186696397212610142411434764732934309367249555232258036320501607401268302753657965176087906636587936672231114786889365771873016377931573666059500671574377701639755204040293110159882483763376712816126739973906760198683370566759724875906690190737208742630610867886156353363418942496870744658588892653043078843212354084580992389934527998563812478449394539982110849945371643783313989448443160716915553881664469183418008788096571090217539161569669493722977493678562818858141573991332231234928309571426339544602661567358049724467309941148987869148081121848179482255547275547047333790065299353014558848990145102616152761288995635911478073847928547231477423202120527857842333855642360437224721282530272561917547240266605484797364294591256648601157505146043271235728530045753165189468434119555421000416017041683487749248542923139990201663514737929559143791856413395884040761036406502958160911965647446924449894004927468626399108908578245005859950508096270417848776157741537181402513941917556459177839620709011037403451656197380022636144279838237533076866693529048262837495107905514313083075537424264912652283189961544767767517213437894802586055110357800167675723696233880917557749569202750570759689843235803546599389375728084440165117007103749446539985280307266164560768330192065499595434745134949197591498649374337605158855940965862160876708293573061903296677930635669688684017355440376960504786316764107336719891677216619664784131963157975548099912581218966854225072437504030642311726847507810720779294420537421229063434564141872947257613214569851458067828871419867891703444285494614701553192135909339709676075760282171867375818977153059699214228638120747065463725766285239300078538748557254177975914014526250981904489560865787963414351117659692548647174856569549863232498117574673448825870465670120129232382530867925426508190164705928191693393245464115299925785930427202723074131709308381784063427178394089861352799724231957303825891834026835195221054384871853955887643355114146481870258840587050534415698700103616335686353415288656916358004484963648824512114922007411131497652924499341384521193000919851187457033834448637438413279106322521462887196633835667193081309129886632532824018133221628241809609095216817339645176707293735079563903083189084144970521425085360732154233420641688470823195845603653398539363091478724624166250703824270136004580569724978045139833980027212021069616750352593449182878308451069562429992366368975590558429656042852945093083383002704574263793883868759848403937901370021427270308985897629452258588263855509124677497655786013759840052058958921958912775570444822429834827836202034571721455733661637151675366653815923326015155252890544572633628191962252045795253377204308679720294766797019827255491871940944580483351001301703588715737117086900361962904951360056823960608787686000325229808500893256217199241949849721101452641488652421634714965081538065271610174410012147982711781711555555899704874511688020398609705265081341395776289166459835041149187848916782210840531133302559753406102449693704424119479460988312833231770829673285582360888529738130648169644655865344122111962240393045699989421724051713282546852765208896108348089893179411221415010124271510732294181363995517284111080149445210286827031216791355287648074603960549311470144488672763636691927151215879240533530428050811242299721912887765055340734270026507789290026943058123805687551144310835788509515735251954681673662971421472363574509184778870392103584857408059440333224636795636202128723632356806590911144590363870139624878307441368026905357332979128978017142202701001581888765957052512248207598241822642405711002195711069250484992070083608086478528574622204043995839601384480496999228740056546365320791297238601724162839501740119763022809927125499305048356458103366650281039857344917237398689064800259748036876663894300193175138091128980455790285663184085360487938489676868158604816156387467370966424104791088357615159216680962425824063140226489334256881016039930653318749164067564717480176838078481514532531702097251041817160364462150119032359442618390237140803847160160259532489195750355980986296789922351661849549691485542841862752535502905578221936177728869086368541298505818690059495092758199906098245379311720948658247501176173399873570139840085002861533016847820956595481218091629578143959198340068385028495476865925517214760561987820290764200342402173104894149590033306514268727022424170332531446737163827239063561299463574776963332110121483370007710446127600629453205760587967142695332130576287349860054557702831678940693790947060515343859676364725114312439650085901585923433727765799911762141476546099223847712666037657130553808025687580744301644470044289057340772591673448301123724787364452331180036722971090545233053869955890518271264764383007610411814995595834021471145441807539711609142768104053543332798131553454463396596843350856133445445909741394582858371843015306127447390196675019319710371892273597541391032502770055462879371246378608998424808906691523491596435380907577602707770747005200428348787825300780982401581410111799233323036805921355158607437400136953960319790720415985974485719788394857154498954743305756605754012145246001313977301025780504254243410773154794112859173209680212252445098589291845053303655001973477117457352732524323750931372944201166402984749924931660299291815286670092050025755039884676995921631932087927433387478459862822405703891054491125845458662657013854907802214904585913864772013545787702318774797068217431031189670180688918870878072552484351627528018301787107866917959027890565034155079194973725163269011338361724298621575717079768953359813889773823784959674903361816764601240353177530050082330494840589069682984783961384319344769384567819600861338557416653796713164870592394982365489193057381799301228476347752722726398044335312943839695990556239946609588147060068880695631780406775444137916756965930641612454276811420226090127543847383977544646400716633081030417663041541526011694729498533702353201604593044434907445683502178690926559058569061327916053477630484407506015122681389888643901675104441272492085059935557922528218686260744539586955117115838315378965993879767723999737797907601620459427594984592610173288004775451785128967096237419780551605270481779391608492945480993075704849115861153480981476802244934002732231325690881962360065480175689513600672132252017964449151593951568808390531501872059693498768361399871488372703370934262285672430858686802913307415704050147510196173891843138179663361279919315813382398565677738411165358858211432903105357863965579299531356898962110111079140462062955497314137020146994462128968215831291617608543929026187578930447631364880232007915933712970712335348177853874468835810173935557753541302542757412542090307735176085509638918099942364243791853219983588112626075370341977077372332807566844181786191577321206405083894315326843171998808188124856937250573084910145684112884349521837981592677309979073196465348163983199385389804361473466455540091186161061297480698865060095237777079837378790524232275470181897653775000447926024782875424042335001304944649526060513363990281032506380602614799562892008893385573535176762865092440391881063886354837866970610509596230785694943959113404975635822932873964452829910974852514754146697953427710777959158126551897801557808864691765719107478405367046481654390514769070144111388958034139125689512617927698211187057617902804041594103929909112113039361578569567881086686336107645074502692665345167862578675799947154105175043073341237851120895078098585615126413910790444777792236965710490466983765342235521846698900771124636801929867969605720389730069781203889897510763368208654686489994785624796057316920514609497016972193910535233913040015151430282080987837383074613715356339288138268030794564493086661674452935542265120130430929126218840675460972116012538765831100722604064199222210153761957873006813676575346382174617314750271014205772334940342159875307754399745505959745047346862305840260839137800308706464110375797342692493910073428679118886395326306461440251036090369399910184615396757111955764395591670468951252561104943677237017338805773963071554311593807124632352902235440171961292181607894189705152101558040483431722477195489337537130804274301172241830442615741432921552305688470537529362122013942609904201535272753329084554792738771232725316888379789120862640285777266102430698070513173089414114694369304794931844732787158057919244579475974524047333777570096599352647929594013532130874173739511899042622117584619888874989010830003685948963828016317927035876233676118560588944984161445398546105689975343528769099525705410138801700606228765285795782973344888451271617517412380458626362096610279295546443740325668218164486797059179570314755915608409510775751777389879555733515188315216406551591193571898272857167166883607635237214423777554445304830580913084394220118671203689553141826043796277540079968808871640869265199587688941155888392370223176872088273491061697370697854370762304042043512697193657516628845118650237180472757545219039377132623381042572894900144022948175726794146527213948205659292135237627576769982827151354599490364285782588687940504480224679615031943038228268656278906661730753127817866270583637429611789167979254431237652064190700970068156059686199782750541675267915424983951862267289912474886214957119745389682431056546534618166037202072320305280459118589785044943442652010323160340376887068948264598757299281696000826633354724113735545325751425111050056399120773743103776685900673021841975348331774368799910490701696935755404722495538322198949930894326756811418805158609513405822794842040755855850578588381047269579188923401481589572484915915582522218884687776511947464806061235499946465701745633731537892619412582528185369946765354157954123411151593571726125696383964825520326881883835834414401406526769933941853746150497855536675908838459377545083652626819551457042773881826620385984089252695397866952394304357918050143791539225601368828064053309794276725787153535745250065249309986710901247448839326950769515071041356009246315266481194184103064955915473542864814385345763473453340016145331466866225519511173893055709006785935340982394454722472766591028983185783107233147761772417069735249633066117808579867077908323179439581693356296824250395105395290398802443794338422429104189147371368143078312991184311626743890083693288398053521771081366713133725459516061671465702867623766302469736511204810590593122033691481646555036761882722424903226827039729916976848045829689692468820901626975389766813749433972465347850538205573519632328514719171056388512487721500223893919449812957233696975196587543090047625314922622624660721978109135835554832378439103119884754086360508216648345528383894060591775839213297289017877434977313682030481016431269167624995731542301926477314497397207335525457825269806215647305123654646421116266904828078781662749714402590744946640668327076539053230948289705318788875099373088957295858517220885487175644770803824983942008191719682090745392826481296907964211603923568235298662827000075498915936334291285949547992993297641059896460828452844295897446606559767941297804995466336427404815304566294071370426470298003435066071473730667952058191501175336657685228086861111766250744765888506312981257672250265314569857042337197299340548175252273274280080489860115075387026131603453099838154745556178707106432788983401391526280907192641593066300209585166386343934872836878373032138841472845167837060753338811751632012481109097860344656071506361462819385056151209724943000783551803352185276181809481409618657227847266987502774377973096766878152550816033755150381300558631828766400423803875037533191401596296711880861566182668062028149225439476313933537614084161323605490492102369411062002883338204146652934152003074560856524413322722558225831457120988137779917810226687792988152013444337491064741839934344001940239847683896216793406848791495995486079677213869460032742599860261343951102526025292674244495782630892196510035361488887126092979046935878262784226456853234889425309377465971142992051803889661483932726717020467492549767093214960777760912803545379045120764357914804621280804554563170439265574006191887003745670024305899924095769990293046266927182678914459215030133362307119145366775733451412556268565320278818463452411163325626141412906688225686179307743206001519647854885807166182769655209617988733109557854718291428696492327614539274748770527216743360209637424969425213732728148974475230642067891273393182521009698972658422466513559488548301484471209320893152897661100204552409044826426575538428913598042376244627354325286111807307567759785420114402802038865600676241908988045142771205796300831609624509303696413469460935219038963934686182607177658990223433943787051470553162427816079489937587042770868541185446966360082960124719870895986026822628006713104315619804171338527223223548774597242016655418351722113757142988220067597251765443426344473546816169259966456016270411042972789530873257355158466923922864040299896240906847746652384630815334756430963629733922289648954629533330237334857152884953138795946741162722350476453385879452354260331449179972258078264882741699339321570113997969739969684565039785561604055354437895011240220464292220470403873968199797607286330577948509907088320846222434053252406516957360681101006608649416711280831190750631008444153290910376669613958822690881289543800780909386563490680731858153959112921368177955616666498952227269469159178297794169241433383799364848842249214207143191476484505238388699185743788676117379602681811512864532773330239702669481008395364206983283361789528879835153139485300948689875550937217418388713403317729085937432991460036801669216037087224184297286671972344542847387192530323127208240185978580700971632789200134129159387769655725177250959738641399371693391243503446585190101595151457580972533099087212086696544215005351218603226326984763151472355110426248912442338847673394453670380920778245027778545273425205421662165943804557404356232425302427465522840061289777476842043012260884127597546785278415529850830554759569457010001378939901122894217968768846718896265813414141919107868855603490517838773028345721074428539451637781647757704449834364407071806140870952723024279439611204909918021179628386112620263840273983784024653353617683640756081539129082825078061648531579926036778433903076380612372802694663688385367705243204637890352685072438725020659358996079803448715968410118121594547829671477974630776116545324858100385439021229242266978842009746821484965793924487391296555197163349240547303811275268725423299424205547320009756255223604640261297055051370192442595301888304471848349963674785120107758441406156705255652802036356641885630041756867650629262515495407054270069542930907814432120600742056237358018589599176559693054844060829519368768425214227993485261950553744429623700679327614221580685060949743406598021291473386447588438469602479033914210872291681512840220160198820190087210536883929882392544246485828171636926716133621160842312017992142780671603672374753007247449237377059714953826889552978396821415948180594008613792775354802456069547134785179975511975551821917885464955712078480077871216121005254251007497037751364463051632666075624619832168216788715992025573919253714783522392744320687375274240073183965287027170580499845034072570817673803022230881782703348507875908664621619508540198180828113684606191697348586264919283624430555734509113973055580997495664703430827262791010799587879847979001073514728430910236258714194782989639728315742439023479278029072296962354744986502893130719720285399157670830757579178039151946683074949250090899541879731369719172734896112726869912953844556805655321188486415080820336284385060386946968975583339215717230237179119946976926008998213684861869874453172332102346708139123570108487016030093180148320361134644982778164410124835417818971612814376883129704447136116430891058615757238557695942910379284077500776882436032497595494441374628632650843452701331829879907091573567942544395146482062437768707329917811678238562644440591529174631941375473630195192305072219229302983226553340960746336576215858415961401975947107816380842486700224283507314613888703104435495544054974647983089062211083897869467845996276679093918175917711869977567101587388644413722686658421421841837304874924903162028006948843161711098649190241768723746501930239423150926045232444680081778913097919122873993285677635939987022344965440390108383880328671695024014703940366516380127263879338309595760162529317282135395494709562060911971937584697291362805395160709944956103367334210247068809354144683551629423916612677571190013034141327796277855895883830507191717985699292824121258091297402181091532330038564629247131865921747223276795211276758774056228630020684028057043079779878823698381949806433110752105604568155720129816719307168960846669485875839221634299220914117842122856153722131426236670189149271806836278758102770995055388705573225068003582356688879079704155998333602194600072753628355058109676537898870126731407950178250489576036003880616004131978359598020846940424632441911642384251267872149476823134516312718438937918304177089637191241106047733560551263208806927932351581642575834252246033447901804050287540283505649004451086878822791287955694444125797872994587662565036013965238631003610909088926625801871113329463155813721430615850047551528579721091885945456229372403129174798016224651885654065239797959756828738466742788984803688655976056786810357232732759046879577041620747499553745677882223777976628721401527227514671030660024783487681922790291053140846055622474570336192404950441110829370620887603071749520866691058998938942295697931181509359480778550725826027820149106335219482770394025112110419430755940542162991034517798404181002539606703708694003474097391917903323383406115999558706164080676794727725316433412231034032273867739259913011344160076253476097194013834132928629743003994493687771434625948272120399660800148963854865676770007156568987517431755439592625719305134694505451955842749353009187868123223344075633652415350990813850820627100645192094324730900304748053058121795513106950356240512326644497775062598071037793122916528064732550135819948028231914726916731496992913625099992151337733646381070411980772015432731517161691370886315275642272496670135882857140535563219207567569515152201630654205575183532054612422786513815922102168887512362205293396278760779694276871836223572029376563778378271136339712441129288261211225039150912012097861525015532864371573891275665058802458337989886460057196792732761010591359253740542898272289065684260129768062272522818224803236402450311769039047813561979770031407416267556055515428081558141577309850906568338555865024790103094162862593873697104355583138767533081997824573027332388753043362782909940039735992387505281838116244425282552942904188193298055918870136595244512805101547747882481127142032096491673286624414989153826248419530320185523937168419795687188464875073319695144030053885506070532466969435582831153308303545465807039596786897598763907454134692909736200758007706055753753612266480305990326748685670761426305145349455206029432450189361908247162557913315419522875245413999675398325074894007914728469919869500436046005038605346112509595714668690044569209023675905234095737346527445287394280824289112892716930030967136396795933745551474080727978548272772047083662608363665096703063918188319858693557139061987525589341612668782856092997027285685672967084517124550216065784150927481119986583593822762575197392960478758870828250752804523193682968334998515827412130630976402592410284283697589518184565027474861133933851611884050031382021602220153585456176799240816048131533532684603651641044174567728554943886649930835293335749598848477028165360698135169285373444680898068109203226956539977395797932206217123730622095963778576553419537328701933917500997629163176406773860117056574626141490620593908707549856296116404199233890442814930746799563302191055745240184274730662620890639476591961689042760495260939528571730319697005160782112762542181526281942820161012280293510573863663893739098064703635267026615384280620864675721633023237121518845664602039700341794217802071285968441661474860113155225858780118151011208087727316564214248808414290633374573169241548847990612331113109925524610767167528660678350135172384495228248394540909961879642847890117999046432065211628306835720889516260036355960943794806854823673512269344113850244145872269794473755047499911060433014648317031472883096823282909268179312752151547461805676978862389776117295160442318327248159332146248970491499538246184534759256846395899775119332326749681285258638356702581878918258584279355374451072897220729434583381672060459597776297745601146302444404042343547493517470354915998227829438553774083618217030357172273124594333445318511803817847530262253591918116397415119716221551807665866282121211351268674665813086490059701430864794126484145102266199081999858335026433811700998189809302271386961944714924974973790230360859657709612933761732159178764195857553402315104508600361501758710768670645272558024043765658587843087416426115885734661874623703578660665315969995714934882125970027680156581361107162169530121256560750197640353800529031312339537965721419411820241543745265497523096056952213659361715118849019121613586528810203138257671171003751958932562976243187735004448927298908210185043874740090016625309523695699830068229974322015872196502344563429953641155229787014494923558460247919848100149248112093935044418530791832310079002229016380487157713787097375142317812611114812771226076179524026015905214474416786822019406658054767734057832242009592143865247883805992803896984484202887879114665035107477118614650058002477887035448664459612289649998045281725554128761325510666713872990092942487931965489370799786242247490184136186124056668712520238862886946105496367862606652294883412772425672542308342981142717232974746536792001238663711994635460705107973153482259853324558635714058247674744585893032591866681648691981049945967863334438743041106262985695032646814620070852608632645252694045511385777120952224984932818313630082665524113180617117178140893445976944275365804555046364691965382620029311143327649247265304877513492725249328048140249870568460101886406716120216823957352974512436778886516574049413791072264702124239087892639453320484009942951025562195094037529167334740978494107047378298313025553990788509728929261590045959690051729320299116130822944394233565008376819622923448924284104293232507869446324924698765488122145197364036799165309629568535226849533865511889572616984392004871680240660766780112714998623711143813609977277687277749476446419227243445728715854465752718442562122093258986645778284186553399638197872237160394059339752528347654499761241160164024235331057800512519183478860842809802382223950463429108361777381711410660403331072407591239926547262677362518792960758409829430326813163141704480987437549252438667582345050743780550324381332932809928019679048953778379859670183779432146077453189495443216294509283332240470628855616817905145428623561396536586114292092148865742819547173161879233128350371367058248547264052772399185563581331065477624948830149941490413310331851359307000517467021862006373912237770506016533994592599027555830806880364529210282115952958292257293277380311057850045020406534435632674999054073165640309328728122903868561075378484830148737742830008357315216837065809118279546044486571264166195411199722348299101083653159977973060139949936962469963286391953511430950876974185126548672059960057416316560731165332489297718367761269471502901448045057982932828583016911559880346151363728019648700247466669346053687390622223435429882917526286450983264732936256991519163752504605634313291641410749720128432335914162724768157786837727709072073079147781986041493383796142805994568441302688558809538370865344020593111257282380909573393818049604184401050632192765375174737883562248204151564341140740942776636024728887767668060344443625298658271318341446789692963848132531634137960828392568546021955401527760716059657901414400552526135587315134814763753457302063618836429997768989104151377988838760870733078214001259134753410685245002663638464476402805157880578710165700254243402844596131328407771202488627925539237231139588846497791315352761441997813923448817167023299978349551016820614806095203095307076084453494494148955589411021113080760011707897724514425613835606368115043008727770526067178303507089218116313426756813757343993439079328335582282011350348911967888048663212456151857153089332997262041677776792425651086928450998350455202422212074630512066073504961438794904202042065763989014380965103834001979149007355527796960589878793126832094578003211645267322551542575697881908419981142522029280966870414833473736017743703656122598933186749255677745371388039891711227375998723563630866391034372637009569870232973232164428611932809480321624595290487491877513823434823024345294911722180041842007119318032336637651330258591158418173360563855167398501863046716889627700389692306039949403933480968737478273850515125255631550688163117677652427007457357662484598663807556357313030137949307636063895484527909161706166915999940724672944195663468717437329216370622160387082675263013371872959340382257864510219251768231812620912176426691540638088002579589469991646394964331344215757185684295000265145050861816885161771121481015504334089216440106059969934548126872946426557796321797593702240128912471611626577974752882709206211817039354818436359414476365561921688762862885290707596010335587448431670896511832152812514738135469296989235538420434526357063873761546410124159877267374909396161499435515718879013822277692639745285464241970255219562571543540843792631160500312768072203853247771552995372382036876800288216563653127299783490791510835095211365272799924528253990903485707154426366528576190508964622416714195720344021330129388865082685890065689800698831825222140771144349390782181220977148741924883833728654442707403306966269452504495350342022452257650908208001338788065597617973878543346888052674114942922562819771773321841742661806869726567277554197671919520523477604734985624343057045653006238122689049239373690235777719588867818047818992823028393241659640873245938355935745631918843612577736617242595123143425794270333914270727489707496456668807694932681080698108459057645678386618985738520414527550140012732947208286019286011363759506281251811232948051324893936336461373249825751090833867297503393869654737088011270787919800864511842336306236904510218319473343381897979001722955607562446396914177055373283578945033056395476172865452824039715229150978466600065854431484203115157503010204569290984422472205733756529367837933871483078341385423287404284186124798036622947734336767502343758910877627544070482885442466315183686995313473567523295021003086845436760131546636012055994695358872349065978190436202078347009141415239181558627013469070209434373495264796108395166456977071716612586261835163676975830862820445188912693255033046379363577640844684993479385379807750248166397288165630779513109917794985375228105397966455782186621644323847112235512714889671508454312620934515329547177971077607479452302457231624738562604207998500047577799319314221854619813474950130957030954567536106065692187667535167367451914781891408262267309632152785182012415025353701771225914194158163673081218547002222424075684402422533257552981342570486584034534129644588380661113311174103464314692011556815309103751077026229637156495195628229604924139354541090483253963195151120611716108042622335607457036115322799548788561165962368007034542984496539190298661917471754884904191827771395098702434411979547802100690996121094526201214981363097819530802517739551301944685528664032501163856902062393645594198397427190071876140114570097450238353017530677331443445983373974196301943965297348532141238480064485100518454138671955541324143867795250402072423071718717732474560344877594477848013094763879294567631675280441046053954988511170511018796793224518370621457113505780329109070777580836986405884377616475557690246179959977672196768872209938441156700883313089392862709314497012274292472574490464312490819609830190259884521682037868383337651920071731270146329243844496952540296130610762033394873103800512493240344021256114278660773006566592789632175840310531578953344863800090238653917492217768945167008909336966427112176725092830819819017839949360877340289089197510719396823378923737510197701839470836635939064000383577928742753295990849665157590583817688158248921744162278056889640030447740758916608824763190745138452147234273274576991070411166984479073453640222631262851703972337664676180139943758748329787570352814963456412456068561161263238204288769652573442878292319504508630122584074142984848253169070431058038726989277602121924230342286333640683447230916747599903429931812124082195049734329166942552039350809652409371426463862438851065550476428018935194690669041106388659979450876390490324435007323461167079346121471397359073963512074147040999025169127532782688380170148736480708017145916007200247955410244222212547572827606441411325463922692487061219867411307505364711986301954404233030930236846133559229444318848562952123146297382443608876114581060593996350792756584696468161974398634769483078096881744955794644276313155534270110791798194091288132053534524309443768313235169968188904086591004483462656183687873639202214587975070117214221866322444329937761732461113894961104815021557826042524235724025010446018255851276936887310781087761996838700972179332520366643389746317198804097527600230925623522597226020820399409659799231751415920953558692820074137335920322141356917206156270102359786143420372116558935506662000899427820110877341418156474776515273472083513304998097526669522963532496043377868986510667914698414715870304332058509129582505828404462272352620454895527640124254745398867818697624344892081690409661818483648974944052921719224208047486495273066712994747622142406690782678190582812586190597055158757947524795458049519425058810938622824400185124641931362647132413400243017487953083030136196230691890890538823010927294897377263217482019313078804372616268294059572937367779336772411206536432581015392938619177237246162619889481456293309878475327439612341595353198431075514069866702742496057017810637312979496533143409614792182107943699048925005590256484841725942318691625833995675087883747681363391858651788748821469073979630632955052455263166237406158183403816791208788178131595480448152760413247953071798444955639479690920949012013015249759104467412344606953673049753055358121616580255493731456860980550188820208865568631114617426587477284860541505998529237870849426249081927526881003802877093491665480610632591883311411628797612765250487146922727141271811475295495945525830796513891382894124785433149664275343441444933450014971539280570222067481288599218877435612415634096027168737928715827358536568410736895193040628061962340247257675213340755712174054405893137003036141041438258284901784439143344778989324439423003124888940212441502780631511580595142223686650348335908563030764078014371442915999072131860780853505513209431106906584521719888101718468820380535543283503680973258415198018521164554261910555754914423692028308797424127132378461787323043249718119803131569996586316833675298247962446241727692898877968873449184959307203344357344837479302174704925455800741619519303774315224290188316671105369533694982840143676144223165723044528081181777661861857652122293741208013222643381598576014849516143470526623754037251764194665216260387296742625355076896561277337552213371549384536196055555092847937154318127512967405489966310630248162291435222314930665710093214382364460070228357789609118097219295794751525456826160156508967927995548785557392979489161544204561943415181493103293609785723121759419433779753088516130966609174217628301433281366171806476657756684604718621369850372144718405015139788451728179396487856548080556086331443464301353659863656057092505345263000779650957698052527610653375379435610435102884931710538387038861144704274036839992322506368218758403252607258004782303972893519493014094967897165664887942064853509939397859513849960112568293746184076311898116876517689656049395374759549274820058607959627671455683188780185764438543066843760720274601225120593259684193665298434555277679426235438490426665601237205920065575940363328146016108884766272104136496919528111012663396200135302619326656754568796714810424128452460523682530492481153559029188719231570870008823512361886289884996853216883044865368719627064117413997363562318717234335866018254097256292262420803446002288149245485290796822755712367125200006759064234128519361444599594634292958129838322433818689915139652327679887170127661582921524137767972242656278903866791010697067780815777057292981762182123676444007995391339029276392901767945767135619151436046818520170939875036328427557580697891365449652236117940391983755590386216724089460420848165539398273636020862052663477058776397716728059590370288990242033084493710421056943947115581119647336357755532520569932602635514595703937130086512714878768197653832394098730363511168800863233850064573754629253770582717292563181969084986293232396730814039726064719687647171267642179410169687821692337368727026227403525309607219261791622279406833584046919861890879663502928951978295500687073987605825311908260652724012734446827571806752595086779908143800565285232752473168240542670583849174723837289769662400735468150137201541986267752366803266796201930912834809894444642670438270457298884105140390955159843917444881550470538052470655431038369273716499130645580372842568255291572512293935079356649765108088013790340808933674545656760595839438411183159270089679614802616574501591196144347832210300384267542364972915077921655788401428463778451493853300613052852942968663407798716762086587537055206206447997935108694483967238155245929828099362945009473299777984442586051239246749032432917854347038550491014158508566095622774096703193606007599267061957259528628944640746786463538868322846641351262426001016230120573789173567742945966940705231215882573167262766067149543707887698989356530496536499259462977676027811689877175325233389794802078117662954526185774317189443963825990252583469079984895124377548380865707787338348824186384388247346861075747188248440763529609162560528291745337176189132644410166858726755525253154346206862694690815753322618015509373216513757386074690381811034446862418516496771471788600667302554350919328574659332174592178397134005953597816252870224736056907790177517480161709504082228447845193375475347956747214272497050346720215844659957238983083846602677773052867339555709367678239281148767312820461973160360463060689109369960404044790695206258413547259362754723390132107818932050391044549950865424749950591718461294545396964613598628967901011838178192894167794201682362607531973307510741390119023425521895677444421466644705548615258707192415794519750037111598847061551795131272424151530498813460432348526464173630683044204576442929336368563450325929724123315739263893344349418501289256951079350504644695546161730157518900491412663795637180295042788599145058500585767362827799676581438811761575162879158746111023528458814707741846647988151432556927606268274904085991513487775124689526529219075196856649814544375502416911318588322761020058003137854830930719533631463963971640352630849608136670707878650652597019998443033949965625178470426216374769628327953528983003238813483209844596894638397611920728792700344305261910197799137422485477589132102094814659980333658483328977274640685384159648896563652339230686730127175710904072621516360953290227516850686413545508862218614509169787630762627628747176680869161784535587004992973545234734727603397744849607520221614384997861624724313706567943359763083410530134047610151240306739056419736083815067603278197928149258797165583465042008823202081287572914641213174742747712506939135433710519901238978435182138428160921343382620074332363633294256361942418067029780156039601415205668386365516625613178445694594415180311527016140812304265772568771313578373126333848095932997477150255714107479861450816160121431569061634034182185641333264776811976276819219295520909552103430302181932976830071211631635511270239788539286886547777147714557727176481585122656513126492793754350713552568060177218229143561879765173335107112852682056075622934836486944836398124934824485468935349110083911135884511783086211085020115475482242888720280561453248008875065360082150249159473482545546591824387626062634280286645027556706078490497870769774649364636904261594894004789298701565135640806507574461037170422065305972235710235903695945670146266946576166860034681999951613871253590868367293545887020772293439697164661029016587288840020324860347091344837451786941417452175068754264487237777542994500001889916054658631752583593592007689310669923461567639736690581541615682038397449335705067141019206286915713804413326979506500479414192972086284765149248838928715593728449216863777516360735104308785064850171177913555819536977202229830599325790817922648581074738808070561885409307289361336482704546380510357691346890576881479869567754047319201357203365559130567471044689122021088117388326949872178270350446356259543258407598337484783787793831791463588146098397328967233127928676768342291395610920876137427968175522816256145864667694373490929276307486953711516111279708307889260152280333080959684936270544006367736339451310215088389220140850604093878586620849381442248653873971187070726069672710082598196292068698040096876429497367395212723856300798302352823753570449329696065665280950018830332884154513963684345448490067384953108882850220546095445262394019753514461494855581159344548762339326863852048424222251024715615132815267184777262166349038468165335394895465960158252176323874357926729557493359360076821600057304746109980665326875135805930080419851118321710605813856242920794092830520412889424493044813805895568083216904869833497820255482930939486601355895374630648645124321179236298957987098376743152719527427660122985699602220478635643919311807020768248655577474989057017718999779664546316792982703158163019891738729030870714728719686778173244768547090154442166966105415995851207553726473452432424196786253963917703975310286161720453529458133587073854795476749224803956583014171578581930039599857155530658768727159099464523954119398500546601516821677198974719494415663333312413923654299321490396835064672084035629045301483299287653898510638842046214865885645025113621557960530773229575869079056158954484487506719703499658496676641201634513031258173825721569917104468400636781474264034246079640730974322198908953576051934859372179637294638804641118011367625126194135958471054279980904850614242220565689066136021007055105324327057664129785204063962513790389266571291962572479041342660561304643773740280564329406367717217348122881089281700132173046449972347080304155532646727231336061752724194401190023385506585809129619715039724008696125680547625607624798404313349982307472498435133532059175863617634643735652185471650064786163963543938161686631863407654760711026299054857477509834801660219891717971668157942383113988722268471370818961315477050319032621118338665167652430280434192029843546458273886135635970602066335030907323266311771682745381685551653587730927322441430491702780567142281261023782573088357561555630384888635216017045074166889937408232965396146074715611458133588850610452078849939660455367589920844587180132343642185649737014005270318953424978961095232397063098440086355432536724487057098599022391311476045111720146713366270901719379546748143574417500378756626809866239709023475554945410369553760036097760778619445348898609336557998733737715193702702723429270650884673380630955213820009412816677703041319367698149940593890800964574447468291942171939008537685674005668658542437635257547556591114346982792797680561429876119737090131048215297145386036798929197454140696885096221700135407476864178400867839244438808916823530006963763766480112653889088902619280140500089444376548802428497653120259889321836883648391763556256604226788417702392459844894686731803652907725625737654089977091935149916936627165497838042798538906909758045240539281626031419732970407481436295656530453237389669824882764713743835282994519353536270246841096797491261474444836761157624627365746370983763069463011341043561597065006017777156823717584228127310040192061946231729733556559255989686145110347228534252707682532875727340635755040704639709170758447042953561450817475932553707011521485783803969033725637297359355152439154897862007099897336997047727527756129700151979158465512379184145922797661378481031193242699263478652043909380283972610794252116215557082627845428131147434318130146172516349607753471476271691479146993882658049744643530395304993951164464005811887258774183448999165115375891258515793634292368193505713044546788936564410740703479186814337813148350936664365273196948169312487467392652889101213257687371829808512940084877171260639782690215188172677671425981062615972167091788954115381317210791124038578022349451243752984064405074025477519698213146043197245812714002923382983365800611537934268160539057505657137325442170568050388096881930732669513160571943872757598813892040313123910132025917212345188693128033417029921587787222097425799775252606831352576683222223357694663799388549046601432123355235521704221779645980063494182215961959902043097345083816516306321525811642276862039324240403049055591439386956774623052099885217748381624308024173583281796498149703865268354566376076339196783735211881226099854627117266556125704778144889475366627293424217730191936974921741779427879988423800503393432850761826911486185630654025526987252004900438649239401329638757685050341985005968674518994652092649811964885362577583536602579055646326777928017057728791598590418143020170556132029854065482176498620398248989463500206946941036469343031593990985073170410540108356549409642841545497679241413845548763890142114813336125405302375387089378287700101496807647249557171199893532465135618481476158151670768594319367805127203988079281108052713094985954400858422042212319502749595518843763411865492752672474261150610885889281434020354473322516751303183858607222620140175220249378457862623228666013835863202975776916983617562138366003497198521408400061138104991870953705001658613607619371704239390075473864519278437111308757296670952851441229557142941425438031489581693558047384200823815781975545117750710466787916222047957932298744164363286559437699478080016152044218494740980184974373964620631220038785581811379347479955534165268496073537050621911048843739473748747442117158911986640580266587648882280399786287139140136188908663852335048416516446904561811570386448862724489957938112857406632690666486527788967848337986967784629353428014059147601042749343060049885620251581004688133065039262315184591362475024906320201285349783507771343550408571147142561582443969695324219755567111217766795900365739124333774788132306117971400855205967440726623113133965728701825559361018431300125045679568457916171579103068458539516584685048118767656863362356192457869045875619887883636049824896590354757903182419811415220431494501180004201263328707416690375080186260288007601455548062319335725062492610432662734039241453243814029454160526997905758989268235526192361704101717787886722304249548020095795973050395386453142497158353814879424998058902221450276053617142517057037312884814625928225077031081947658671613215218548848631471808112098395358619792722611218096401530615498212232962277220512368173570521188339953533350732268095848755342981811713186388313975034254871981161428784776637196502895966720706611373779680613937035639224463939661708728040057037064522753945447504449292187721116739614095821014602481993297526124034699778379057661034240318075039353671198735441836299262075739042638430929372584458359347718784730923525158382790174394777645441301278047366651661276715296058906369767772424994681289352262246603221529063472076361516278659842217298587822268789500091019542596521895648251735332647498037095563539524662829186706534616499666926669225560261808250163031058651044064569105156218930931515861728365808854713265530370116927458048824571499536977531278929116349296847972868244967117286438815140036149023544814810648875824536783155305265401754698500445687029777057195094876741327991275591555596986321160045496837833373184559667393890798869256407864971814928724997669627641958797040147745648373631537078746151487901253652050129894134838969784037644451633912855159607468042976363893744811656936588026493770836638468209346660422377504537889559815523617135743265712036676580090277597050806526292733141498783988016405539281023307137117778219109540638724995782180797280653415622710015265468234143733020636768999727365125043063267756050886607735661742246050203908634442999069934928248130014125492293314881841377811874425803806145472089334199530506768453994629672243135739595269283031076881224537896512593809217622751468749481573929435359158722509613079493096317238286225711694565252180578889980916911861115597856679225194675568359706091875365006657127452878789201569064211358002000210373983567187220406662799487893366180050502565620211738281795955440829807959381803770881302451070189580155171034770832315059836804789115739160330415212918478992477956317488861862103352268938050185678698723185000456623567778194006759414823909813335816653142973067784150621448589560455198436936203854082176328643684276345167989099645021967230269136049633436151600644196409769954534274660452359589599051178004031326420619643349508367764240766584192469692685587206166629312309626826056746374879670767550888498560561432055457122199774763010966814004426453255486653359046591065532588165914354746738450347221035274120979908346824912890709773021776263587994516028235431595444126333472955736922713974097285961889443667406349212846421158173852338114823340014878535391791891847269022708768337903327239885637875952756094910691587944139182550483084825996813186343424196607278135019162883700745641848712215085325550495890404638445951553658588054194150585105288028552732337449704083209476883468088772825613332918431063254830166622064581883924199103622224444150537264226528084797062780817835018358757095238050151846356747508450056476735194191909719894615043021730092254280277132372650905158912637001293987360048361358725310874730186513540953702665452692087717502156011762947256237868363185386468698178009379300537660499159524367599502513908503434081732746043612217659549584425434510381070410925200097579876537212358815684885137132992392679629397675557847719508770868205952589348462304020118554027896528175313176606793798256969108946344174340751103852713489202604330160323788429329726692211567604227833134233538315332487870014400903750208430400105654586363409055169944574809394079970746619261977189729050908866039123187217687067970540283273315598076972737071293270002809361403517893557570937321943207787753767966300975213796513938968265578623995329765709303447312087169165139903481911319223302874239035054594502405621490806219093764025603839509511276722885365637776581803120102472621195600881292833977998514571248330140955452810629584375851050261247554985029810554523522888527272620528309983803604739269832394353297682713877748801942759939329607593222165636273415062685050504981877307498910998189699023877621317494036086164414440191350721537100478106037744336173062817651070098056913224672486489396752029890340331679800200060833089653587535085409995563425946569100062690483041982188408917638838075331165923716754847285365244700754283777828423767477735591967608993839955006568978893946335818208297300883791344166546079857446974948296912155342259195736509961066710666828614837897500096875055931748535075677160853948137055362290555205767631235559307533441992418949932703905427658421915132194675598501796925390416675439302285750416438599525492616368725539499147453556954981002677451773999748105105189659567744813112091319220771955763642356937488016450197313685812564347616476204730921692286241211170976247168915511509463373980757417050281879504911233546398616038551885588909760573859999053076596751493723271915171815735289049144456101473396649148177768331658613785498198128985672967846686950859962229251700211771564359460669837967366381864891628383682681401059929718815174797035428605257085360234479343962709834014726445456062474436183793587456982049720393867491924760338886238682563846016797554766575396761607823394320106222280045995364952736335766897158000638374900540052494626508896906532972029072045141760449910838600775950650829508810547160805838218321856003231632427792916347261147302536928498220345715431091561917086222298329637826103782086478327150823808041557698628841927636692754308021962856806372562068320483856562523626773609158324935765787723246476055055465862838644035303668437400458174745621199267005725794112367173705654531479236072933393305728777369090414216640699810345918167846029556761856442144102353594459541508171679588800257807371775552536 705121960245050450826806324272877163629999715378565855788392963786298474964861097659741735149018438829842134043167628838697491144473667887838893697872395079187254339830459056271783506335939257982890580175393712812077612290190090039849344660173973911246514270220887391445418619152254594007313303293324534124987927429698658856493255539861468262862050209676227550324355701662106939621937162470411618184371386394640196581691953483185273349247460196152178381121531275666139677251660965230305704560998551812396228783192669841140606596428368577097322661612436769194148610911370641508676108782624655803159975479844427913167808122892806955947892930310208578858400647512413458043548761238905954928438443269198073171412935681785327492901927624421165994213316561901506850237557644407713429983394735432383940750687896431938621459188690971930265340649142303552870861950705649587818549567503314733344213501434566884091755410528347831338366615645396200821692430978047771381761897299837121803506795513268043690928366047769079393986764785930677385534980476564138115592618764539923328813749194281396551638760665326850782663595571739368883211283125348352707184158306864363405629553619617473259674974791147235162326926752834099046791862633141756674077966101437245578021141749416094261137347744264350788423204682975263646418112533177485885441078818406558995172269102297724909118765655589126081368771147482519744656064212020590687380210398906483224723776458294066289057079194278298967036293093558292985314320920802599858101147420085857885602151220006517757274542724799121276753812747558157083470628840605762134591666136268993037344778093304302754708599520825815259146000675099959981032657061926659730466874721054336182496977621073341613659073275072355109944334689098269569337630399331349653578477462360788316831151023181130117954811700720543042249869797723763020876228937172116431788778838642084058254479299849455589807954529009472400461013939428777945256888453084793506316734973328596822193643499496033069976190398994230530211294932269480958897682426970277229855165940924499732967718176361511566420166360173424442549637734865886929882782343943523692927817169208990163787230897453342444600706489208270537057639142985167700555073615717444641284386122044400895651781187721050269085029833824544187450564789647885821379223199802914815455289675630017431337168278111203953072376479620063777072624392737252743359282937324860765860396966299575441611866937907545440968943892086617589036218856668044548088907837548180076485512905391542055555584870433005745363119888617291824937079397984695955883202625141721133816939875813552213474837293069756562700214658383717675713085026993212291527109848947805613129624237630688950685845844634908234147766067875578919153291425825066287622201396968750021293693373699243355362747006092085662053940388534311450758112034202189662427278742282071483987613114715970530506511914492657827261948205785192755805134755169402493740401906535698574306127932682725901781417567244221327026986370224970596972885777195575117059437931256830351167509738695481013800041071469022057004884382925620112599256971480227120967827278153455562393050259276404926354093050191969077379773289747267469795891312269746716592945481290679492894033041740412751899959836587552195795890634542654281054762366018049496682232842631201138247754062422633480535700812880714596727303736739549283145074996239195425158663911634935371312739450112437769609692433461788096821630633393735867142633030241753443522688279641056382965993552290616999220691379975302416267392831460065871232927602730574782484810332525321409065380555231561396852871182050359502758706949345630605038960336814394708291142734660481517965322050180666953911527143645687566517447856323084734513600102512129745576072338849431520412265622973877485167868556020879852103639202377601379711331270440124641435049893141158904214139530164181258625131547232407808445545049443434055143572673807460755000017474122975763401767130597810363042347854269196673972357945728785782741607849254388049204129650497336995564771883927110948113895407541448678387821912207813829529917625909590924429047327411236295581593108174044149961763938159686466953381843086888470139747471632359726301815471460394794454426806375972504962388718551094538408038690480249035316816761035200647889828500051532884632985095126728417817821689274142137136855872582946068992875572136206223736010995058485680618891915719337443683016133088939850438203865789815172701122264073366169361515444074718134542933339902136724844944340820823303494765569008114202912773696706782250845215318054250661637575972253445391779899941063893142374794612033040381299300502610714629116564916968709972110003083026732781976286376462433290972490830245143247532148021901748205435627185252160645948843171252819976247522364387310665683379286560178261267018808283799242028228156096960235230818172489693385475665554494440134628442696946106545559218964572445064760937599013310985812765408906647664694731063088528761443232012425244327248750197751094736297220210906084248003764420360546928184987737591859321697268106573547833878995570072372941202754388028824014038233011341722695232274156008979524460065817649225973171512410588685586874865766063851362581798005627413245226780448927941615377677474254890663128547859865272926930372365935157343419855885333082812582234485183087077357513429480694805131979171416112789527787199178353997107687713462503254253725514619229856924444913391020169651963144493778203781740250140240978693325044186957599426637683260081792357495190115369894092648329141049977534574062190501975178459017198401409523697370534649870580586428603433382561006771309913592867458377831632631510784211640818168095653185049857973323257998310001476065457037972756889954032844010791077587210893840508360617393901253422094647792821942476711779501573278712169865412338666491688771932505678806290913149798650031493712270616095408901955980068698218545324379875637246526179711052160509100218741167427379487700248924570840210420360632476735606848397214386834654840788884329891324516130451507351905358729826665628589190382382675574405031279547616931698209966727361823754871072291685671088072821513500583807321838699963634726699361266282279837125424129335206861495530379395751858476272652975729506790194146467133346035621777063104795943855354666245410063001775780584104932079736880800333067228950875722313530840928957963382698719288486360931077192085843109823316607422868730931726801379554508922680380734596905005476950386876316616553769907796250282077321662111010298582438373426411726075754088532583479500367151606076870961245587491043524866348330762932650209916523454013428256541758533535949179190370443563498675188955111132661273343884496703289763817625674650196586833181290857578285436033638619888420804074036918906730926541217475704192214986133043537240495613407304750238301807382680364907318379102177217163382199042421232668304460696413232188332993437292812145559691159730180516190114730824737687937983509157371928432963563918057952570664565547111125741079195896409197962735160898103868621609924568874496588357762300403928024305579414435464258312417963404120591567079783016353476921069600289584242760988706978688874907966134734599603723951683382896556814704210464975891059708701442699840436720451091331011609932411737832698588052166024240807344688190408732991610599606184952349894474230552843063883886747328111564597761813594587820373506685816855575114426027835155485496842962651003881982524943605438519868596369362465969636567760335507505498711259788264053530055298055148564768198422510889910432402111414090756226241207736914048389102757642075165149270087767783283656211178697180476172810676047018629513834070271418263816131565465091345104089755964606058519573836008249836482158615910959003755849258960454371258352155518537173412127276515088462203787873348272772112094843753442175089834474999426571676547084357517820664963828460221110966776148200781714531442001046482491571091544039492843621046916413186610385190420880667320046990543251149472692736374712116291895246575624383533143600159413455699645816220074139331385968881052051167113404411858918362864414034199240250343120051890950959011620343367694329728151227256391788928409475085824624184574521064886151548986047749040963279262885416844434714928367627350739645354320098779796664836078828686436261777144596311840596733673765720338538010471804015329120034141440830775750428162264776033743253682357469973829264468868703604602418270186738108830487731860687817787152690355915315581966009887901568068194610195783906391116399133462967978164357849181954911517807992358333204274619403977048946700811147629361167742529862668043246818532873800138082873013018731407454444545047136102738430232555832892152122472446283302696219360865242440064464646994136893007562111863102821419339049201722970146308215236287283620286183483671683185541713081824631807310960784876567505255396427880820380925905495196876637579231139509503055165467844240114156128608115754876962339860950500775211486365805336083544047725453555074376869622914939391243544290130548560516788703917153662907910370936894323724085793681648206545116336758292458616101304633888579054399936533275972378551311960800187084819317475465814277052335072306598533002391822883948618621894185866782146880074423192487298986788579757429134289613391242610388683638125526459629386199476219863645216273931212015165882367958236152927466753924637856255115713955983063525819831952135451021558576470204022387654297481711220365652090742853742383734900389549026082451299903192470815022660970438378237806235213259564787906102191202975455846408434627776735433268086903284170582223707411664396814119833204920793066596634905305544856482383842685531608503282550890678084076327098304278760913424550893679589632749132690542437210676194673754734314035527578218508640594377568408224593500359537386860785164525936446367947771580645687208981042858566430892328416378230865047515487589383838137838809960160401290374948053053063624004267365677816631139357466998454694862108912881076644293856009969542808423098675856187060240452917727618806960442907652056069438666333994695950650282789992090288895827909299384488624536425551462964199554544143119206505783651271251909557328001121468994428851534667378721049634928075401368437644336273013098933849563161967308818386441279449396568205576263245933539089208925660013995185015206029552514199860622027208592229704288166998323909515955526892438039038809712068116475021127062112204726178921495434427689101212605331716393014070760223032613096248901218911544509267857967442826989003440904246479524322805813412115532647887069329410457731110477960788052214533097689366452343808932175790449691823096642057288300081257815589882978747142658045686688315805455570063858333236777997348928934386173241731815327204990143831314249209215933926061008422887440968755670729832598601375216451121362019349927030703288314646302436417415855675956832464617753785224966606643024634994448256592657361707358339011699114512172450440332524094771012153590597109360588328249322889665175678499459848338797177110223800835565097720966682436999820000180659636072932380669465202187461708134370663366571811808076389699991040802944026442390423221753053599483635306538083799000999291134534108112346780300983691114848446766769800790183737443036774221035610497637296872276402869022920950472132417105953485618402613049252955977813831538730562958298656219504865593562185614012178819230001529383031245071160320300690608985575867124059699446604495803736270844435306003039078244605208676456673001981200120182198253113541984889910426614104334584327475438135725997809724179290031595927541692491778116806900014784538526222099837921637315656771838449369001402160688525920278949086018072256721532614308865034149617133904743868490053453926595275484610606968204377755854652743047256457763593364565996798146189931710035480444888976183894777351121531022316197223548063858753870406893303774072978616876356062248232240275871664700335995246149856709566786823762869290509229862398329575821199028702617761724929687791668174032719263149611892212829963375682287557481935978267118408773048250548579364138878492288428727613699898404433931974338384209317989359720409185415152919193105634230836647625692265843591795250656336376598735645297969476063088835209884520585791623049754174608177254172241705576824959678738276039056261380012514381021861489951307721198254764825163365976184891797600131347408398183463785545566026949251015506082927096502744585411622471020395120119681684640125342994727715170188370216156476243522966904456110734139371724208866341360975007196865954490225074428616905497987004856486994719737362626703512119631007714791691844962274102668951319009387675523867077775942136481776826018201894832878165987769515896191429757156333786608977328655141514454987536831298300308535974407383942138694801278866181351793767683721505321148874553463612967087784562535100195213585279915789932804997224389148428350154083982773167659532348658976171575707412593648229908414318543032059781443991652993595364444242445207386972560120160597088624312822932912731583771851911644543714028770873986559568872288107043831151443308197000011406399134525575823877117435180990870063666744994908445206256435698022514372649023280715891335941690469657300590953240798610743736577131377261805142674606022670137779979304135557002141881177893237087161923126061383544691438320869143722172763024159221658976213103342182511551313018128344183486708537056465497786269891357204026057392092432859770634344235511048951848335683651780501592104889047146484361174859738737795411910461285747253053361875381894658963947555696437779020463888513021840033619583622828645996862230266634256166848166250523377125670702156072561332568524044327062170259513861848682307325786647716842227882589942897726089170204489103253251018140636039887161361243748077883753765085954999988327539997381463323503780969256242097289406527771129270113029333956615068228359106281303904300809615186193018768110989543013575853248790494669144773030189938703606962497747931242249835121980459937804137156481364210598543529293496455239515974822499284105722286481298510050172123980829922412231953676434521593304193785836651109910102302195848313275292844050639844381992466771379953367384244715365123968152047591485574756291983829068643323749662500898649936534591845602066101645135245659307496656414792869535147372337416911368253302180458790931839339013444361913961892683903262152412490643791097991303802890508304318625804073447567647954239485550243364844587841877482786763233743607065680188170038367041206150763643286136756127780536240385366510222919464079517696791456108253127061138905267234783207766177516831420098171335901953554660930242736127285681012790434760851584481422834594722096678651944781873373859971251312096788810790063741726565707174873132301402322094545477719838067164295088120762772632197548918594166558950970111942596534174383168217163995244596140821957482499720338890052130376945778220657828675020085532343507735816076099609213554151992489660875665067054016457301130451247689647228596152917944373457622775424685092274686313489336245948900271656474236577000595498989718570725921691466141671492755896923209941662649650655169123718468032380709349797866521426618358776959266724661273630713734333664062856914709676573301505796937920179343809004717777027635972732278917022558995080312142014851907034050378308044457519902006299359284407543227468833819546585116602181981790758249583946922661184175919283030454936598903665573653125062966856521742208487534775351204846793253684601219696457494293786459513650318752154222380527384354701022341599049397396767105841404253092822488911471216664052476989849880159886837538835491451497584429323401071429080915970907805616413795949973250939296664587999946867379335461115210973672520485505816788218110230574444027152347928018243400327670459177374673730385633908755293731999940205711258504694021586900608252706991937693692669043387874333427909876502732362588718347503875752294237109577138614782311404311320057629616832422562957752193160297524568103263197086746717380306534092743999838794581531751324135987606872671807994396621606922277524633930290443284909225978288384068360849977172300020642378748136877149132231522011932708108228090870629922979683012287902676571969929836642545528632641806373242287300396492843368597260172685419064112577477830919292382400399040972080139073185796483672811753727526363993638758844629864553774661257727512639921470659785631677405338632150606292149536621717071316453570004887414322163252268244449106130642082024643373047373534253326681346219882234919951454548077243011129489628038488905330776111236997756057009416458702659081145098490178554659410047210508642513178808643252580484179327468370472372696172624789464275023203871043223265116495955698920302173273827813539368614403999629930022651185791414008144830507913731545777447022520490185202803920708479919342828317893329059375065760394001079891312952534634413809687223913766839174305254108900916121915748874304718187324638267269338412365662325502917544156101500526057028165899898661665261790151776000179965988009954366553539835878608438207725634886602232863547900460623102624761476259154106899040823297076003824943100465606650784566042248069424753677030832716400251978823452982033695942467089311744590987311973575533569053382506732959489537563290500839735381600587564493401874759694599966342473127422003346132399496008987077323286352540179375132962755068437228064730731564216693067650597243289807978277276884439030386450663913390555489626803357709777654033200504725664089802817755754456090668321300340261736816334823291909715989612306119207946853816498110054553275032071984268984854205333015169847991349366010584268994480227951738740222989283262002637054064314117952584231766667778713499340889585003532544674824909689909161683050855162873141915917742972872296305156581328206525090401887146148467777520926849871540953718187390276167672458174060260385406831680775889053537436199586738545446512324855967106733169709437399567331602462883393647035264841036052820881011391604152805468571071963618238701843643161477776847991270763855506929394993256587071264539600638023106346407290102239982439269522503462064329793957523832866464325361468077357287503584285395815562849160210743545531110513407629980222740546585355025021340488407123635251895595560135573974006525364473682800751705696370554107330933133089293955898308044813387895670497945241879521005797270487064102475673962660155891830977403158483947774715348906350796405634128814471251862280039385384302301004300712079736934569773000952552887031191257473476655820662274876118559673435169052713156796314893767277588321560711576203471244270926025109643571830964354829153105609028768794119111594708089259030435887623744947664436947987393605923179773283383053703308797142024106704799668743138961614722183433059179566255724961520104613298307432700068033327046143159354285887383707942014109845914994572138314178401371543986613771569859836559455158868491715002425144848344481902833484435772599362784045066710522877339266746315183709519719184330893741137248787443773547063841817759653006505017565837891131567488062345438518333196867070676338582586665520268107765572358217348195382928496081534673898389053268160399216021001965075816441209153218680735995251388218530715135930559767129755036659348465018582984860578650291377385116493297755952539614495995990122381828725592378196796182054191995221950398833390319493004151715194203484140198225935892899039660134706520063782307351966043730972275213034711522097108663331586635983518430499393292150416956560528257420829190963253647581564973089315999856164397540557939057826952058655311700418949432486230502834170714662801143598919535381348409840012587840439959272493408865663371218898034681011158395024032219427209740567349349353657577644757515473031568628316440489061453914241509092612316364251599547306319143378221924672566034816739814702883410594062572289963764330866486372486928333648337368638985734378130888935939134325189794245642017162089148480792436745644474511509626543082779846240978974747056022607657303710069874636271690015404252259569301312008617967459171629295259017841333825185162102932962519295121578539187827417986783644914599822914346175853623282417877327028499905063095702283621918576176521849172101047726145023211435569870773283215944165845297727006400099105741611853175731280756106036574372324473979187144017660685457093756540295527638055223653380141389056489325299766968162487994334182775117931661661943075990899452105376531979964045152101654673933920252400031864732315673389080095028122899351525968214623994326456806265844816305563997796463653241159143206251629654622829996258020964367815949436992069585972285070881449760643238891806420252516281735916785220136104141812381449477693650418571373919215010987690904332891041558798877693137308400809807644394326921047917021151420869019322533180290759447847845705887156151664434607561979058689848735226933949622477445811075568261603365965614070345227782019398095080660503718760112330715907043904916866560301384052504370906921639617191880886309386315617716692545101212592545326793138010254812066664069981213229401764604883944083322820515927218716062475534335923855164193341433895034374833335153921399584199410413232532005964938441954611830950225124681256474476066007574002868424192445080519937549986338850154884612563895500985742097042527514354085404463877028933290008828778419280667283680808194100045213586455414558589282095067230870156400880341561735265878573611164101324689130042616482297586395272133100897036356199292817278093802113245701870064946894710151197042073180694837750082779654005130947428149760689571067711702512085784586037836477474094950199165237729026764271186465735059443023456854626471759730045472364909946953903278313054572742543374190672933346974507224857010314553853143435073018517659140190039909825601989302177017948072867865533770247973883998420714542610581245958948081440983858685072642906249366298693331515638008131365452867042974798918890251263685127272022984046920732591894341149584921418738753976908945406945117283238874097049845550237090962296879904765502466849175717569427111909378248406150366105458190929419780100281783577407237548016050206417600673472972162782781429528663218906194787351137784446272752941689108935554727019441021586511731848439653942397373554058907976805711559251519256796043427652830279394164094669303267298890011804920649681730623473314086567186453455563060956857206617315534578634490137621387858334413298777840804438471701787539621080852073664908051492494674809854236011110303724889022369020458606357366702620793352558761586153421006895751961984931061455639332661947143926414039603752378370965488922759185277970134374407934419077462759370113859531565576890294284773601139936856457012070101466039585136526888741560258448192797197192713374510875566480101258900298968849439459223575967252601824186732773411948046505421109404038659504885667162313694223252931719362808977218900583897119498601911231809784371048648359914537962256405722613822999987966033745113248562736932081624054383550391102519579093601851067778983534360822370630968669906178195994050249671040101306457387007345186732706418427874407443366225757537764156320141493767870368114307242337360828409326728011581533885242785158439580713237849784777369886139871001233700638508088285601007985232261993966981417654469107585871430501193291099436012046660672840360786603003235663593529056006066849899300203275293747033441424993397008173687993489576039350335889079884837792219763623076093959225298322664482110067993269979607992296066187351746446978600381925622460874876676918968815186595474452734104209760234846587380451218550547454712912736051756849190787397716711408951953879985627031581947891312664918751355585730312499723039841821101052778586223267708959075131741225019004168304564324636011509957865878898101805615804044712209234141707085736824640093035257450856635896105364821298545942689236900977074818655942324451102601228498515629596342896512592062137689822441924410704019817543541098561219096479552278499311594686365054546784344438033749567018184408517429967214460385232554884401519807008862899872709648301507539662913905786579685821202977043919483967902701519187220650174500868236167662607973952694120119041226548009279575778797530313006103505068760290178356274692244074159047511099933032870098552343895795399865893787325490119817590022381330648221528580849625242120429908815481590022571574088558752734342631456050090546992820499315740230923621344302221139420376497060619658187931291634477920875640765769901952956445369531826567112395168644131346824911382623228020386033676917390432846543058805611226479075746340865286262977839580720806432716091137099366433621587800058591285329392409682442812400886696981175994841908795956591846083716461570696613354394439846869236862861380815861752150530628247391606225707577844497669119888330385928914205870205740558916383359663822712052815195754316291458730014784784475886805702477410898059953110087051560819032991885888026918361216590671191024506917907499278329367338467334386805924552188342560006416588904238239376684700300403424035239571576846606257428139724025761895149566665563104151954035689695397577864029866216052644692035407211325643440077493278406665675467086028218845978050098012512405863163029433563784833928777144474370571239168648508495742507574340852764354027920867490022698685361230982499615178623604977855504082634654776641371248594095421450140861477027098781515903365945752395234702375756097865610656090639994904172104657093047552147467521733854120168126089881749869560668074785779965903520070502729789529652694972167434944943799573574960400479994387721865446180821157202089140932348477950373518249630954095507337896396617054278123553981328281386944147077038995884820138306698738687423911198364347629872810878076396861957532777477569002810102104647245181296575550594813795314014080328183338969307177966788920225503126413260536477203689782924644316032320429724533254194356783324218072809891806612372205417188199558327077507733603389927117504640704017011447861137026049581589137020858490128018615178527416346963218905512732383682209164797939359449148332587801949041714116960838161304385893199011920697357106693120443909401276720398771312582762404567269628491188675125293567698385807191467561536444009644758726659908146865349969204655867854810972199412346521325192749513486400182823773953593394201657276495810411281930682512779982261387970211668536832935453495853380977716405041657236854452111290687707104375571313064999341352617320056295807654032498737895479102987333350634167455157589247178652998351994333457086316465937660064645451633862395580629847756077768628915983668198535537915963168998729937755149697301271946443992591616720906660517760064767469688658942064991056407156431982024782902328075875055236275139262288155392444189089379801426339948688938850494974038554787359629286671570539711809635738695540681319821834919294834157118050477836047543986302128769969173400984130364660849259738827050704641756903399794213335134152645225344699525168571186997584880425747356087822918658006646673342681323768962967189979303162719015981299549370249220236996710517496901887307034367271973744026122610042202146825569829637174026775952923326944130538637512114207826516546243369875621913451272514655380660872252703763028346852326360570937199523921716026769570117678737943877693325589094038441872038010661844073580442948977646125510078372006815738235345838780937636549922048072466094118405973288856102778744109489524614394999074939819659460707033121148994870058986761843112933459127377935605840143181451509376598481420868861606580930498039794262023135975889413572882874589758387956454068805874869605713197521804693244394803451311650015696970798612168989883161212207670726713457655287203484569683209628129608002282781952991724378041620155693136193200216684371853131667091565051312739289524207902276190438849079192177762087990183000440453533884765438326480829118090589393545198985036605755707150526323005518743962173492285821713677958358198630852258096957207557459632225316276665742644921471356355157623204555075792071734185266266371028130011642046525683459347806880778568605773759363331544238315648566316487577629977480976938074123573727423386322238068832083316027450767596253384324384158557044919260901357186482070711778852895679557255035611525888523256674233524729069566880618271768571119080549123648264300149662023320506170467402270759164839546749460111757974701881287909084104589841157197807973168424307112376928760601407750297432771709895419952567311399956635746870610018872390048351467933294638545640167891457484872331101278047084668719304388349346855416096684055878333820230396859648790789081918183687143062992065595070184264680809067841804842939117014002190259545519418704653766649457664477468040190624798176018406331540640919451479627302493529207614681024495194303145455173455567745531763664441973154295387398141518314525635669921633594715995971687734865805278533082199182548408056317652339872202618867180667571169971440640708197366545159869521466808422588549987580585117841505342543237781676838353473449294623409869879054806675033711751213005344938546179650186766467198570117162188811929020873756830784976304458547885402453587813050189232916435099459639626733039283797036519216803521587729437476600026779561723375724207564320406795260614226379231953782322005518499142082717583405218043690037778732692268915880694469354898017200976651802861210434383069606584958686251453866599444824207310042250172679176510184134689405420613186936441805017409795014888712671089721152893759716009814669466995564455255201514494975783392911441766320419952739276121943767650814224504293980144258862579350499647436267242602775509843361492500273298086893609142349368018179363377710442549756448175151556423515012627784581055302523707475231475208214711539432639462038089508527939537460616348605860486387770655446639856061973268596513648997361225632323738701539681508009058968367903970322055124752435766819395661708060423265180549822321002527750972608768717142504978881166812199268023317368546305897932978008344762945907456504830577801631074097424904640794601325360047259079783307419345782748363990146838675212841029756809304544300416482917992137082055859075011689415245809806116016457272078182269631414173175920011675137705554781667242065380447172274154001209329979563546483309963544438422956196261440693541954348864718509324290644168429364785198536891687773584143100104533627571991949168794901076561345929079122877811844912108421958691239539271872154728494748856283663571502944890040247526264225001255262653919814416020096572513971308842055724869565162525148901163698984186912888647037171643773892935779277910011060470019728267275021411351229675508241021072129711960955107990804014858316117796158570126006144364066142196344940693281520096908995164430130549766401837513690526729967548775662934230518656920864288082478133896628964113260686198448594005146584092276349518920433848537144394425463701262593283572140394894770014582650800342930038834058582549524617626011241079625067685029095784035135359918853944575761022252518751712115654112183427041030338490924461932849334284113525392515758117451289414364320838761406312968174572981066076911223410492692114175233456386063668230335464634353627604518328330541051926499031480706914485656314142990092751398743912768312530378074294263783605390473820434161386615272636135553017879999977513342925216108782239343943632483049613418923198515096267516955134334182954963039630251498294717443470372479727934229510698480851019689588180403087584465845975316200871142907917434704707620632346701466229390651883977280848966905729634861926058491719597798568814566632559620874558147878455235374636937244251197742146711641341216344474272350447951082168424403734897969985157904281830316589923951781504977937493239421182520937725000296185214990412690039328435414418895876710170499602878646326791232910226809303309121284913798814696366627339887881247904283740642496877774883398028512778689528733311814024401007777928464372960885939339627419115282157563238014290265310564821846375189078386131217048773430310313289969705244583737099729117840524473068474492468043350622695850872878915236023644124366775527686768986413608677319477186464288333065511169446585825436641639470700807114371414281775462579382529864273537113784352144104312672642789161596890422190168378962262484879366019211532001844587467575551133874382102334518321904403701374604710663033452981212022694110775619537902191940031055098350446279204064283909001372068698431753276814003491632508250269353160777784494527392956286672521620743523860936950584127951484566761095319703541966841406013604288378659107075843149678506428506904664467842796765394645339509640558448607897158727406731279833960156879390853269913555191417610792403823512846576548969558143844793135107040324012102669860141604977921249644242286458883646484665629657910072475772068124607306649984188101966230020100820077240893569141327084095044985928282556841049236052635994308859619112618233704587156439098506884069778638487838457058528243349936636517400663630257597486950129135616871623718157968774755263758718181205844295233088949379716869125171491940677050684019692701223217265210201477826286831389561063757419323043281529227779034718786204684561642607965634383963786208982419438915954408788579955887648775743607839794902352209040039196131540376441160364748127146253197728947594912891058909393851659825016935312037539334137735057654068412540028148892316926558312110607574700649303967040425055268969468566308992946478631461695032675187931813536773728602336994835533768237404205078457060004508497176952887881576381819945544913940687222066977938570255512545454733228803965105328641978597164978621862197873387470954728901392841461012335190518886414365454839936719816056334842031248317098589651278257404943694368521670746125818840881077639400353445729590032178827710451275854782829184259739663020508294561334373485496215309464477290252703546612935736794879657599542551245955638600942173565530619164485404405806093949450942424850925685854979993114770544015813721719909381922086132735831697495424463183426655325078102240966030732621040743898795703242021426309330839449019656268375947196626584994436354368849365778009594555756073297402666609849798555868622720171277314647440959773613407167433339148540859066352067142474344351037795419249142347065281891249770272725102115343546404333642824167379270942334459805175379107836396559556265681322395441736306607197051886650668209343027976048320533980301641714063727624583531455832043486768104786221333739721042564763666264043549685882714933749058903753732645194418154120881541664336292139041966864598298782658435977052237876874570798711534651193080999184415884461886513442959637418647740409977700878690856721106047160900464885308788777337645963650736226152213750655591859377158407918234465874701328032470959101149798138244108934474503397948486928985677075280955001616154198043279012632837927166938960166755832278893278789275575897538253080561734677665022223271670696701643924902076165762397472157789077304236052852214535809285526977634265388552500235094538585212317139888107635294102288814583073640660991882874539214286603084012027294510385455877140222697772166041695426934460906519717763688116642318070309958797294655323175563408860198764863080002754034149681606880264677762615935160552264983049403680215697599790231552744267592287981449551237063691091871287332792680955640776949117634181091745261115865392033223372484103193500445112335529145432017206067108797073578353999517065353672048486933675811418439654667502469686301428573827912529975932183402095879538594536207194253995493328932724070243170615163063436637607724012012573636376383561940384082505238326600886253700768439704015990791383264997985428249979807420906596052203045871436480165072197145111190478396079673295871061422432498457658651889065919517290199271576587379886172023539735438991715435620363015441035289775343738510722719636278258418099294859432144802904021883294163551789760754860917135383516513474208127868033541248766881126900172421757762098063335977279616831519133812607858541314814122878192668321650970819938515861342210839998729137865263480896860450123039051791999085779983126969293243228776567305871648659965799124459851146606964521256938352252011514414014423771671135129497636378691839413185790778936494895000420509993111067422562751512998194018663903363169083731853189237188219491885068900204807699959791903964828566507701070386924247518926123465414129832586282678875655752639092131054624281711837743778241821655338424805545556287862494803328699683916670243616848427240096471326443932366400534778274795615448483440021971165797710818665798737390156481342447224581345789939924969132869155844059376231614923796808341092537654561173903861020647026371105918226052947816884200461368922286540989101876895286921530809944633223162158612559911639889420676722433812060451250976761860955343358084689708016389126563159403269263149310490992060533448320804770228538324510379321246422743023366701335672844808881792805794800208856047927551025104550339481312606341146623255584631409479578178876351654078332461187742192021588649908721800139559709913369520412387851507917467074891805311390012318812621062942288323354248294053208736053727312537902136308812818771064084668491338807006742799945285594305731635518356412821981732306391888233339945461870724947724023047887185172278616748897293802558688666650107626520522961146764437194007648000133968344116590586104019572628498969401909322078713634178769386737169339374605417714839471130289008075149282568804368100271849717227787348501892418321925265814502443367753971026236042520576731375944801483846559330936667933341948207973140813567919855992101254902982262714150673370278985987738668968444007081065585781437801147184594716499904690677179869030942661776828563304711155707188749741358933954749400888513214650876394668728724424632745486431990889746781262699439729303157844174123994755774366759161338808527230769610312561125087253615761878524771340932719466842997288521832764792864021166949434192371132470246308763328652372836821906019311442802724426275312840837845414009650712306887532665476235907712582681114161451063605532542835631167471635624894120006663886886292678247841341663649169155658867384501845071262348721403026605869829906834548838939083402099775873659586644682286809921808829346145272642615938516602476997412217835795506381435972967144765259132637614926083755191597414742069535044790638300432412182222308471169535899214426588699946185444134421006564817192030399250197956042388044607933509705970116928336232175089182360252825698048777377625497482026569549219250997189676179599482800425559467459473750202471941928963100062434392514328559204935332713917492527195241367525045021890323216988075865282217049302448315280232409531576714560088615405769058574985875604999630445175349414725143666542455882513805511330411874894078193580868416145905427788094322295306403019740588426183201852823394626884579348898425300562455783185852593654705987773777123059683655428884026777286280925997633556165598458083193560908504397706831315979288390206119293218593280259749084684836280895662656430500871952248231039812877636711030168725371957604422001782653074539470031094443574388220789637740264597401121446878961739462509683910332183965760353542229481280000989120898151853890626901952171156030362142395783041318964937478811008462889058298259175078510342124400218024497543854044017973725261235454797594858929173566030960399640495579479743654908649541556084501825330343288059265686792225509131476527765865073318483429028576791887184021638220384298652586507221689127950968952117230708632270677774309284120275320492929943992300969233963413559193322030396306634201106174998546359273942047753838616484788289332779676166441112964062746367738152051530597294401640684888525665433706652488520220818206699034748438280638033070179417772432539688974349246505674726496350088896972782821606224009309340379670166967772817240640188190808721782189988041287548737524577007303535096436176414281619865835286179803501090532162864451725103778141023877362929750666774169212311893638422894505501120944270283120411511578355508188813404487254465483598910717352280625508455373282386549625211729207614436767639988537716357840350030293946522900494600419366125837946947656327828182137818686650064138451720278026336223266316987980738026689665371517886105506802251919334630300881596100429970493412670610077212832981572802763647061615821038971665286415373389843576921351545844332177808365549684835660175800274040442170378119323311496225440971505817498277847081397528949827764097016693282888809892435123892570709847017056360969033017124510451083639996056129855243440191127438231177349130680738775178975298917427123448221824476407681632266776409852845872314154811125070283897241003717980948201213940847916759641072497879220318060512286583054114407615434947910289327845149296055519998613965957884974910949602697075163213538237061539112441885343438329000903002626805397334086786118773359370724783327656387524457055156977673578195459464801824869602613796115653772811367371854421251590960365449450920848932861127078799665579476278197048253532427921856547117210823530061108845403657230545955092636065671556133677843537837503778239383232271499480557164456159208891222840419612516872020320062225293810184173937850336887465836518027210107562939814110255417768776957934416386289046840196102651753229343533616946946891306175762662893250842961699645431786408629797617081870503913711566906287091877756317118791894931502461488796060433286529758895936986394246671106651917260114458572617571767433572202673073782263680366972944079550654701593755636865075120889108781959526869772533815777777804516255001909470046120393105007014691787265972017216383128446176868280810963425029722928184447783437188917017091846943378230388602140703370243136017056151880949746232406030818674169051517452221911692175974806731605759527690634016926950378469605365832951093541658844568401980097969459974106876511327040910892511760909198982686037156552724813157917332624131645801101232156249571065797796358112288719292077656948014378238137442326190636585973627911384066772319225871167606284131592420376690712350234142655328823607939339566216521955827305744820589358217794307750691725485400032393611724145251395373892638122010645089750167094681199188629883364820205060145378751130092225133324587991286991289989364097292320112280879419980601911560599338468751670001540754942655941229270466995227257139106459419286380388850328710483713514122888899266700709996448616494997909667071214655581784900488243467179778696261448051765144043933113551032252596612737547759492871277447940189574019089723510007120601312029772734287832063304783048819473592302201449573833817909195158992337827376128976628332678471307605968743366585433247144556038684927512521713881025008562724924622349621517603773794974521053463189781321969865526043182669365087324797599473465833331918941701330934009891751845341785977635970445746026827975197619342234999050960936876942671508699396295032470749601200681807435752339179482631850803705466040424187916495293781191996847954626870748208784056872809883575259040393152377606472196878329296408205517535651060297283395739768736892495400966445875908717736702762986065018532388193340050579895471982474010237683908063257718067891694798873149797425809590140499128169959469471239814770292844657523358056674960763930444805652625603016901064918522699625848352616424594902884581959941630398370432781913163471427583202412583930321764537613782928256625827790876525174058134349833026997464761002044953376383101133567733798242272961746567830916130712280754703045361079227570991363378431184117007473894141966139286577877687630976403583909941572823404886227014076539630495721487680378394310287906036806655685306348844631241969719051869644236329611982170459530389266682355861351184782592772141575999008814072006536348676435568235692242571460654144684850665330972331239402917220994697389148003676910057459425651281185781889896527865830816952924151562335819098362323227240829376108887131522155443318412553235767801682944551169570095676228727595435791129450144185180294628186514415279465456999819523732219613695992663668659531464931726647428957362067889206095158093689029580397144655105428278733239659586623531535692861570553060027411687391046211968613278523496072928919163408502854618531030260514243118661379233142647541405366534369901023534675178663572599555422531682274341081213752079765975597418878014705598112029960473766373612920515152576598099715704404179045169476900977237190801167292961260810139815973155757212047751086980245017528186047261523790345815528306814589838273603076413789789567770470077278579652686463033524504533485834410261114023782332607707240601231551948456127240718355101956652284099899290528100549164372961532407321948280031153171207552398666677685679873885792406839140117414166691402854401675816128324097181927421452833166927158931437742636700804445725945613179963968077960710981772369251645694551622811715136274915297310064917457479724826726721149585881235217007025436967184516743152973057437826107205780931011081485389334337672095028721643978733869316034222670738058102860362879462691561130814610053511368645858331294798612246738926929856316562715456876734384782583247933178889256244986697136297894426844272462507935485874948610496489849904789136588202967348149657255655579701337359558417064417909304309537541567575170818242527731762022040453200320875180693006718630988162645520075980768038778838231662758303938509259197240250941934093554804444534175665858838782690183403563416364731715142857398751161612558271267039906626155253953897444401106928522346264255088595679730089411269679846906484635380822266415429146817658022202782453733804498070471845674610174460563290494714391933582530131619838420969526726580676952767656123860013678390236744151823829894932025763238859235133051958737303017005629080411834824616838286491047804690120225629935328918746740758628858363118175135239610905367110649012642270866158307042560363568899730302840135971986205024228023471351611546434581798535908195052916590928131377752339569094151110944544702896559051401437325917632011728191604768341972577598726441328242954626893170542921661432741419807198084692845244696649275914338655714932070625682408930191007805355863004146397272042831405048445353143558246152704413862370929990146898781821621527371686881003829077677293564284629958705790587274024158194600134425593437813813668917978243098852190637194176067744101857749074154713903512074508177020264010673204158550234103101161967028395786939353619377009471529110251361393892633830135838642304361721558109094728951091496357651627850446072982188638501186226562726806147816325169751451928975762999958083575300183517827465427179722087014940432474849187270918831431343749470668234247300339948205982170674349437430860722216112984362137069378925426574110908955484803762869028282516488360897407655468297824327793192457730257438168992896760811876600241444337602313224068164206140045604708743045787866291463199175032386614724774838522431192036827752453120711745735543449549412548478811166727433419579811515365234141115514062154863236448690867014995499846404211491953105912249391430146755321272870642462570470879680158294289402206033651731637427018969174037447410745539938510547807128814122565095880701465059424003975367854783324976963813131329518799257484571457712183742025520021298475982332677165985898811311727122087769788083660083407448016959825415978023618523365099087159066990151248990800846956146174883896780347299796260790731890216855734883747506275835864709322410146025507456057905058783266019965235509687011432419022818524459106780874931354447026306756456486592994410402921315891063116391808770867207432835683713641325112666623796157244744426049896979290821311108273837361142275128978939734368255689658077490593468856405710323117141510068077643912474061174159312599022748324340477851319544875440069994753457650921334227958646741004189789522984244759110368185932824654819645306504531782118509943327748185677469709833334999479336374341046568287347677853123224564486539927268741424397392724066413558261812681074117785960903605997158407223231180713924561938474297748973557497508488279094080755078313772509444824821480672168077509914584831735366931177846579441185052398114401962828403414655717419428420150479626142030911824489304839713310918409398920665617503181941718192275079328533585764781196858583983597935565276673193823218298398707103069844533387501117480908728548574045806081544865390826772557059198985102439783207173724740630191471799488613542525933980865419482101363083050909993814770510146881512698244848785298416910314926365993654882669831301005410995836328693910343910574714431145281573609652607690598436522112226520544139279372596094899290421008803054349607623441529106418867528558908783887357782521629740762495941885329169237674540149497125876726448607232396240352822820250046846040792167868033758848022711317011739854108158344411388065321268350558612792106654922327460826749053131284385400240335743126231349889454695015619890676968736695625806399113446983441683384105158961493832364498402915014914384315825426313253015748106250029097499785385205661551050668238187397691505618687859450090498578129386668061281618787039152766059377832331091056594945638601416388302742731797203902357887702615439205273772297806355239841374053123240745010038395398667781517370007088931728149013021470795609199788154216182031804351112939405788900921338267628303268410957995255849364033098613938400654442724911272321296070289857637196665018347047513766645503060993747092263990286371922181404476167760932372382889797111853305480622441397650259149987583853245230839361820087074711933367603139321931383240617960076877932254425988891396487508424592578967064078416182696345675920978126058307353383488369381146492516034677316589248299594921673419814694630707113354938332675032139916058353997718832280004963177211885556398250364558472290767329361212406330960540035612564968525108823646678507424150010609238046493741049317733783223439675448197231528015899201048023137454646259984614484338273023959772780549735470887878849991176640793171070616568196793503483363689390089868897845454880355189391255320660809962144992060246943395842707327626617767752203525400198269847921098762747485682572403734322926032324795537301903566984126370429736797550648144657855664103637582434613385443420106893543258389334396873158934573498533155371334429783367217861865725781304760209510640907455324375012621770208245122643424357108744253606127088626930063773094345600299430588868701606051226584102299578068864514631080056563718981890602918872985788650646990561751430369049340575187357312729611477933759862271168139956984104441791176740099663757507197361223043228140878692785056249177181796383066267648791696502976587705952571305065141993835840518836645906194815037009040392953533777569023014849966396021775393707477489865133182046498713354719160083770701773964366397042226750521341168206644249776689828314697037886139262085532108543203520768293506840135545295421035299977764086107031279833558711853728502927988922933543530739275398803028745517295765849192483197828109963275003192517255398734964054097816668590650793417332314559953147401121329230146164756646907586946244785654291693648007819916927044551945978205861516797334144568809344359706344419648943627913213096274397625111541373714722152396027135894337673894013295250315577097001141341033300111814416959527822871858712737240588803194102899223524747897208789664414242156098558977880096243584195127972060504600112360825854916694335569765648729745914784496404050774068318164236612081788723435052594526565516738656537211202583732921754690677577128421380624121282552197750468992477327866636775316480905050869954931090269352195643641786637221663650949483820509664983648806373821044247008161101679197874206078043767071670555150761064939792787703402218078873163425529738151209820928511356397353473002065144679146154731168367018416848192858875077421290653663377858219122553218875125228155443612765523176944767034211467290620693869609269959952836742211431379300029842274777071064827298548153264608491717660863247845570378788951335778544499009699495059080182415094439431666130060744740256722620181822825606305260100994061197888586072295680345636352089734319607836831819513824619505415567646434197814119819086986875325144305894168478489033223203550198842779489017815023826540705585707255195825835025362653497869081852912737038721453577072924732143208640459906586033073921013536907660121316434080888083571072835662892667949203130181282306591583254332350966211816679307661458625713736429964171804535302677151143001199131158306909900236218485997519735947492379199458076209467395548164422893041162424430177350247638142410908229541121398865415132450867020831530424318312831033982283818892735040559873297492866311312519538854934251584918248468700815197506736544615353140047107119213482977120879457636376102960634946806305997175022124667145411025194620032875829172937789611439564309370162761567057136541327559025641883267733465310084418313236103727577538076948085591711048030781439377296486178877278999394839556713388306044053810908925178811346276595962440675133050030160311186872125609652937584042665543791301297726080987289973514869283474649806611266303060808407678914177382215231976402273119652005604812832180108607109903377764562996864994798890398599966540673640048323470342977873016850351973085993352389051085593657559432672534518176338535661363264993817576045502048622009259122826520411659980494348356334883368587163870069784103437394099888937872686916753254120750407927825578298681363578677488631709426855434629177355150558827340559853976123179049668270248158289481579141832823754157810173679613971712269830420286461466311596990208542718681082635134201367690317340983752011200855890037034073038124486399922195297305536201785906420161775571297557740644714755796144519359444444770010359589455039693152042877400066311647954121641424914496537596662615126270140145535235774330599431183550711896541933260880934914259226643410744798123471940323107949019607903968433278948462409945919265871729595822566369648628354302503846492858801292484069679198417248820276380905615410815271524203650958691554861077961770885235398934591586882640336366487685219882810465484632183560475297871848044579164242748576006829625370450145594229113388589786765050573275447341583014500002710336362807978839258317039636834256044210179850504954363702674757392822997819902005542595000392840971617649397622440022904455142457711005871558021422554254986976857017546944558615439317180537083912766355164668314454969810692557950080160396074564680365677266964954560703470721261228542593700829532424492047142872546892225547397658012532037556747212600460013327215908879722521466122508677748744019135553284703733189236747984800917656567389285089774260577178690314437413286517427665075243567365511304159925160666453406660701455692711307131787597480116693586666883392580422140581741174396575071697559836962007135629778608207037595639952038700077306010114583895609659424535447976775589065421267164448360247838196195339190551855124844682035169308407442083101117388654906600090711275736796821016200195746008924136741093871936058268098723201522286059498199132195289445152671498814821349748088572611839835511790913949682192383279449659928513701326906752148695456778852985702464383638755590514133813236703946901570260410765179300733356806884307304340629454949807876141432650216039969515173643157950447723360892421527395189320757238967021668305765390567557305163020371235077323062546425214763971675993286956254898481181589724205065651780448477161793244630303518158366247921975050605324031455413895878775163133021255823345182975875723318759556702480762661492617630687555626841412020184585929208379104260721993714374069079062894410995671890967951119229248402206135500168696371403923141132235284432569563911148167880827227444430553948416953001016189147918378645029164077512586076139809592386492918282211554340558478204579154620241873436117540127262795962129983690459153935497851080161130198770550725530884818257501266318278313060814723417003199356275348351942140517503635462972586826597525178401537879082987251989065161469085619214838727287780273308608905767261474443648484921272074669157188932043280797955193178578240530461684439194675693337791974120261146026219817616593842102246651964621548100820749594856635283863357212173911170048657503815834456167349494592220943335755186571101313361481378066035489917917696448758424510119604798338185366418785670386160217949071418900068312329385611445678887379426416070129849745046583486248267127814419621207292671251425181968880178240361898379086930548324302082553506712228820252549488898827323801033307747106569293308152147077947683621483150351722291923129519785856266213531044058897927781493119506248075566796566579409814431858918951358819670736284897806670983526021781921445967316218640807621333515780569177323817302223245821328295435525331070408704928142317215924635434524758679064748533761376678373025735048613770538269460905300579782306278813024867036980733045596408324155485088666646590193667373854605921763140983639127123135260291043018701130095425259488685952924348001429053600746806342982068235559969886645076617184254421261196542646199081470506337704928392083027771177791907036436203311722240191479478663791558885317565603655715896947357934299867046829322462438191002688379819509929338938745568976074409005850273938409541541565868789664944321367829285490244745105021786457491817838815561895516582982438435836452377306485573371417381560485793323872865600435207676935296685333192146857634907231167028623443781376247327509110197307519878918293719050004029347466999404597253680724552934447287186491102456708964938154386585971777027638309996122536916788316731037717514617634427544796911255529462328748257367722896976646965192606471835621734871220271610788614630073386204497421764231497302513204401019748158339172317427455495590515657607744434549197686209702754026435907261949714551458022645165657568095637719204104119775144505577599246503512282774141580252258889374925403334158197661027102333476102710426773304592557061036758121153058353780067365878914788656925367297951432482156903858165966376807827391948740001710580646226060820949106246591530027605477858592120797711214717635536710508641176219341835550825736745678985636622505162440246798835143916413332666554344836482251479015745731883891116710732616681964624695054415651795290173626005661497936390367243293220623487685279067971426416964865073071627905853517933547231166216788436235961120534642394296608153772621589694860589188982186246624150474616289230074441019501953663172734551050040051402128056592766633399010700588710435000205825745167793954554853085882863696671599949310851761607579930575142621579074135202357716617806766028540554824987017208039022080407607993492981931725553646924742084529626085844705070126943028353310067872893054182796202033195669605690855348388368473924361959762493449977626673765448503655144183600735964291471317558770804145965482404082603359885574751218775328979270423752349450162652341978174445608155468367652719387622684740538813592664887871312068259828243942119158821432951909591362624056296924074665248623092249528680556689133545546023033163538532276015540693068485876523489544728148544574294863587715967139739061941371695549371968825451526415395254531399757302615497072884133099488725925689948607501104107473383668425510030445431610218844616584346999797173639173909338561221661954554630718368472900959009279622316851267380481527810345852947148110213786995807449689000636243775206437295060995704783475718994244996420426389592995319497941168299457739347620423209895535356022300993050822948618343187913994778770411069733407994037552780049668660756943863685196422678426414182749574265495001824316834778767535546365433908334909682381202592482831062750367772579174823235329283504370272381373222014678096196970504184248528575883418500132740093344025328753083657209731739803251960256134643782444894315145163901035940605513446991426629264359039313338940219389862216797308446690317244669353679867965802526546405196070113022337121783015831872936989355982736581007633527222034152726499263800628256614026420763191209963801046368029105693905196648263419398294892959766010683260753955703761736341347039284447491707079699770824633087735751079113165940833992180215047974272658481909707498684674314969532646363988228434472573009641040662006586577524899588921110628992753064520300073925676638224899563338649733059919008874124920399457898724069549969825196534947625211274031253783986675035987066433786628882365842035953423454446572587450275740795029217511611479785644276884854625966339854098929980552951445926917916907864710024618639469878658254512402103843393460823056520840623140133446439999983174710550641458652488867734118819160015581924624638010665415102510845598810719487784695381300734655429717974709163997494485532159372820863130533108944935069327041046855189960476812230759930584072275513051879885798216749571071657297964839278053638163409834037272534531936968652856041800660377551905470794035504654894661277728148807715199396386120704043634610436847266716913779394443638962074456760377482864731297880269234894088765489423050258718589614412782159389735133999407129561483056893712705054765562486508444450036507429228038113114044188219717845609791936349814773705980946498159356788377851709244613424378249749360903644419166820941673416252531463852131898294093753309406245596003592884005940953840124079037931163046229230318014729101699563842337701427955847397201798725145428617426909186208545437933549808595014579536112815158600764593533610181964185119305546226384418740783554136971773688095306179761442385037506678217810277290085876150308819881346101175639846281505400555128426741622687219108352264028721914744608101220526553115622367802242126779697912689745941205510833760895562084131386329513270141218400070500562609179948700402490404552806506981353371527761294298278085842552046135589919782763616643949055134779471357268633588319968045372935114411054728855711955800371841546027612768727884173757625096521817366258409396524048131615119636761058470551466901856117946732112841645782501047462466768390374717002736175587501595190080885743134552112107155045111032078181310330800195695218592545568805835411194563459450513213269415392005546124301234236572308550269355269769131083147149559906024075176048318870066733481074521857862419801339169648037569124381164270557820192891211450832497362246988563773496866748606636945967007198570613950902893764513351424725231919964655792499393529479178630089487600707327536352669365109046937139812344204696748927656337943453554283650497117437430682723810182819734875136099303824069941950108189605996481645879200969309843056918444971843278001810678334774389566295848412441354270084236977933512856754408686431518461904911182462044938286871282369397545628497133800923165516215227560073632418315326580330394795829346835176302451887423186727115019950455071060343241841210444951158146151778136666303940743206023890928862924911274212290861334025830453009855074632925340888429619586304281678605811712753634062424812262639946411133711262637706664406616500319643009539797237134019567503045282484093376546527804996165379853098645435525893091668262860267944173927993823763332137331002756649733159093142004816493289650413697756339417876959429399259802204333265420620964641782653557960042802493185201827435313109610844107050481989481273385803944345440916541657316289048315370405726598163543043788589502310737744428023231213684740464747305631297191469963113215116084369442502535853255999363967348127246828776127643226892384253767109047246292714202776005482885944576606942402295296712257099960899441210602717572927195408987725169638432989192944720460552553775747717751417454445714356146580455186204424375597629547723285481575446818789254707714135574486913447253252778813514065256835655169330862627688535608272113356148325858895889997059696297370754472913347087625804964783073431674227497473562140391718188352722351551415699467122460175988660579640431110652671923758848240013908956026216749416906505377871600824700079384569156807010006684899145674207152553964553074338347425578307829018655250418536170295024786699860636353896274933876045459557709365668050730865650272373675440500891293293232728937363373039816371373764581010777614916558106856941589768342128120104611812650011324861544968064283301908071906910724948528963186503169502064972266587547014908995841064049389063894459168989550603749556566201950946867531113125792197698082772851957137914796200222812606959784719737648770567316375896953843970764443241692614056815021081326879808773947486199286677958510918318537690877648631974216328274533535894929592923160648485946151620622282481016372545269505584920288209110593237055261074868030935768375869979089091146705201141589156423850718340819506234315161833603020612939950516163944724451791258792450305206591610394518752643754327683394308146623238088843682284130608893593794693220682904911210709923403315426866407222158932504455689920028377425778641888802671367147797113198454248912467218807986607481986053608459215423203691387316632897160542062410413824956700259835899453021750293563993826207902835671339492778626889756803082427733820361253239033410958935359341507241743092896574579532854332798383657121551911370522225370212743622316952491863836729935852732964978134777839500610510203395071235604012519758695682141343373652826843022947861755702810947829955379763272550642192955832588195410484001626038602339052462926928051348876393571298861289594273156026335542226713791945804002591862431847108730766443849119836636497569239434253183581456153803438585601146405796642763021453997822510415194339369575370534729547506419530354837936429767274028012467542588998200067880802144071301377049467787262679446855520030539661134304707650813205570030972016653691695435459497035008553764161339067343157859842958429377377342295687131755276400138729419714035034846789440755501189001891940989208551686994468876636403359501819268971177720325788773477363783184258868989143193499229726161463655631902747648903265860132151320997169291989199079045880156190645896138766695389449037734587954776578497270136120817629028909245933578319012433774768816061203974130900313283553485856358584216932821061882206637957654924018364437482146044788624163799021118751561050447514712709328907245893218329259162476050598732224951971292678269035136925067759987446007100705282352387286306560014630852182456731570693706462825922997025496958013760247830591265578568970815283780064574991935728623723348785921189207954922666897463620223542637179358103319834847146861371626778225561799733022502470769097071145388808078398253792212434312695761858403594224313483785954160283464524376134881238694577854393779302002622739165046536534423229397967423684110071970134340600041793364247569942377662331458401765375400242710277169465624508749743764538516236386024189482047685820874479981292977508230048010700232778483028420754483146924800429547742481939275872356534162564428261466081412037293524342071864557771008457687783161725777852822698976116984793840343991344733966377897991374010555767960752392658414292284917456454041844848234921176246426040095531420263335929031067327095403976212244871733401953422647697240375427490122922251090972447392307376238793971444799014134295346499547487905925602013612698147851046989114289681974239856184135318788372640848436732881605408432637892552899507327095742786029448672449734240729412603609875908734051946319340045841213878333885471651012256169438316962494737248044363987134294028735337224048061560444226812472502143866232750779520116598067029139969915355210072287840619397269475468399707017119495456573332086040799884928666035514863526792988436536968770092025000216928790737666401928150031103677036635774658191561457302326296832215046390221808139510475607113355182376915911341207023164248678738649192451947473491554970671180317021124960423650746381287003145336012851349928379980311518000013728466310820090270596647646717364234507591392456022103686046258436140421550107054830641118904715038139836321869325450410052604148022586230159329886564187356465319551811491258273349746055065966473606478145488314808590997536473632039190739374620497685303448571568690727398388324279735956530981960902296238824198256397579520119944976774009215623796106586479462392565715962991676392208399042465519980929106397250177976407633013771358359187239900527441684817999427260651352679225962114436906267153255066987303739105531161386793604527956500877078915675186899771356229407019232734242387232125975251381296216829058088343813625648235660483990759580156834252675823409075098435588400176820821603358097996653817722443979137859859401039765823044271466549577100833316543446865373354143804889776628000847599465530260082257020130259075636215553628367755089326419758002813313180957040732631130402945196494671137369441556742450158005181488492574152734667958736907661057314142161173698692433587575540372786166044289608583721933619732507955377072302870819223105748406653413391154884924637949445797112582372898557335840496171955517138147741026288334386586313257470947009119863794801658170012861272200634689173031579009430997287791761880288457526172315772130600767888700816727622680475287338075850246739625705596162542282798409924293469291792395163286692704521206623083529426365512052237034131402059761054241528005893017583402030548379063038524059299183999659323606079347186391408346566317889449166188191127058717405022867089373441251354426352933813717775251892443844360113029583159744164350188073900206994530350533155231134209468179313580044974493208420900268474032990620940382674629873735384883480434732150317645245805310695596977898622275389345154341872496221251184518143726138697927222903001608992757618196103486985521508343015545363205014359757980410154458734284124439941322509519146609468219136249492115670082214768093866061492032178890196866556439785166404092312547619911806422833152988012778934590315324593624594549777301142614522509537368907419330503388995772996109321236966808682099848481767435945051662090877622278175696578536617581035048393165287711892560809622169864253131669230104900355446636575079849391121374464426354003103481429207670834904085043518478062647103816209291884599247363217408419431575212944909328834929168733272267870262566959991446133430745285691015622603589109434999544291699195667282082309762531724125507935924806103978455559260137193920353533993500406679221029126264757431212146548131577460795250887935078065484231455586542766982532066188768191598453989323882504554336103624493230499359450856636389702501716851911269303113484146079050460332599853317107788939912899117560955683921183508537752307854707303946035423525242983096315211040470357446202616615176531785780156553358257793559347544045745517441495135815122166951566573817654766053155681138045641330984851774237641561566920849505355629691027207627549167741458616509021162157164182341705226499040573728314277514090890622594242467288954628646230359489449924628584895813027622319730238704389569959737308617537868908096757273200612640628443195574497147563239980675772705863377993368595872757436610550988379669028765494364718488364143459791605612044932887204964207196819790180501818125207291491274276634062828471783629539170785130255913997849952565596752941735724679784069724815733482714040472036333034061454611281180159056051622445056160284954309906452191216004679376382025007855430431549165017714089719903499397683639693139550680912993441570224389399674084415370059179971831900426901943920178444710100880726768661801571826914254680486922308966301907382247733869590365688413300336621018768162644453342169410772685569645245754305506502376095567754300781117636445902410483679500275852461129850793257339429580800419939753168529174108476236437634785123181345340426637578354642906761040823754094384995713978049369662448087668891132978469413578489440698867586695298803577440032649526448668455652848249768409850109586679715181386021515510451313466631949612548675814493115324781061311496630997433865596158566371193232938403181378023678759450830709465656863125982276769140049391941221345220564069830849024106488620253628525956874721789780344429110963384737015173667123256181650200443129069115187361551536664827256576634974076622683297947395449514315072406447392752417436814207868358823508844161457629912496318035235099337744243556526650914156974284271066255186920773833069006684118250749348753540150724057333188545592136132648225996197240392161740465055562287281903918023880864246669613253603807784458738392306340003304347383737718469775339791721803482335600685997683813228551063318968314309874202689886081528802306355379728336642833402326678855311195439897815435176199329410475611317341368744646470164667944184944519120365726446365258833860358103413584683248416927947466596781324124108929472441610139862530358364933097690215705533878763463262901856341666329160921705880799602215286417408962607635708034475231529397598245771564603636707552076154896245304623251518870612130083329576265591867715028985640121821830024571988057342770678813588545067198554101791210629332030064368954800087840841101516376390791732374586119769359402587971635831604510659389639307172830914704143602119089494063906035078688333183956182433560020388959014960493039305060820363556838082520150534547648991834255692042865889268027954278917377851410443694854580177680000488600697415626072323977584910445562340681443544744789607606675692023348293359252120841991180759334654853387554896906118881948252377868400325703689017290943089407732683789738729907696737461530364632927780713729398896585321091189170248520666988297194098416165753100781877143128567188114660798717035940925147473575171485440642704745396958472955970138583320056235740704161577495088204068417161676014283309750409878984407567737839533225797952819301611723353814409700841379768637279795419015263676849257983463182894899520340083640696939841221470821821677344325105344211193114715326406307307493870431221942387590973194309281841266847268779512934256886804374335770291110314966176839947414396696926942285131725304419680449985893498586677771534952340525155588370617186088580784198821634968106797276786643464503049889160080855511548066985863788316156049405758800316235725652344756181996099428899463902953484348036217039692536933843109475680395334801054609881580470872088651603590644669895442381724859811928238434472084452174743720623170304717167536245984664117642216349335680542916899096886404089647649663831913807386090014570089502923622178466324635186104131205427364995163082450792478842083549118437698145933399843292863261062646171950766488526072856097999364224062550633699218839756747698861254066022648975737490828231478191576414111234407659564426616223609024396147346977066815466731370432161517325249113680365333314515067198192363233590790919090579237510907403310186721655591009752953465567330612264947097602824476709314519611224849574316071664284061237956116570813684563662426630863602771047344613619044725381910582544241686099949215432443153084440435572700584928846599506097014545930732491355864385486061715865993991513638094671652083471101823495962340875457428057706651655200831581516537726361267337057968816822280721872773459647157334879843931659326957258853844121193949517244332450354247267945940295810040809985577941001782716388776232939155955285365525640848547022481925455445171567478323510617439732226418271629056095479519303920026697281913558227069092475585374389306953582205264738637249545149407882601383660333702261765998052774063213620570310080780472750162091137239128346353818485964443040105660469458592979285052163636882938951337604104044909935126154808358045447877873727151199828295701621060341192854139094921909599164316386480438735022576928467279633101102873481399863763192843989281880022709729202497199805450530105444601436221436080277069529417141957231103252002645100139262365010764163156751598568643845507360483291208736583045156020839347382468256106955998460942750262541427776670246581664054715511300610685044962586984463104513147251398747178539553999305540114572378213830908242935822044748523437242973549032888078217547115680758641376447662866066664522515473170437424629494838017746375993583200705247477379711315030058994510618288677715477187140199404651488032935054942631043786329708026359551798356887211284096246888994120570124539841642585428206787650279377133309020675845315528583940375502489715627512017415227741953298847933201325570719254027895262524571520508034901582475661131776631892987877417300556162438395974422284921033129793166522755690111610892836598438567313402162707252302589484783467985943487144852147059318586611412888776150098799312583649902421160969643910682146974010264737143152838343167070137099567220968034167883396898697162123062039883160336238517528985360174952424750117565059845906746976426275388790060055549175736141763406196506681456308967546125914430903267747190531489292394640904249420257954813680183148699857480643358337768806314702358967035801032115309835770513776186562954568750847180652909459533273466302441883571199439145429357313581814810535971104222177225298791484198610145562966523109498329024285426089841963932841224526353448440030455764992147249012000717028855995416352467114225184423941114897842719478463057700673823699880873776267935863518430680707091279479707487278739645972233481196639991105916614619590324154118190009049582285813703581896528156182310612534531317615278628416935003411528332194294025061708995666560314546546984542749500658387692679259471150540477663839152771964368517002311871328246202976687707460943291335747071885562667569707059187751049026506866374125254399037174747469636033105753934562959347989056265256703464315471960709290950244004143313492394791690590758432612054186493609833748706911479656703902071772219577212041316710718603613409412336342037448356428727828534091233938622421533536296215916225491174914916305672386631127460084238538821627330589338256293407120349592905513706486052084130702269516903528864202998589049744411437580996069242149139138235093875315169669998576487312302478868245119239629937831925358104707234479198097676413513755736837580147245201883985748267674282512231498859549753624996909764571990952153686793560878190351716301371648117882196966417435512636969224550214367534550919801219281159318557203858692950659080108362563113077759183147205765926718796287919435119219749114562728851807213774972094301884892620712581518917632754169950082172635477380066693951103914732742455445590276303588095084607422946180754202386051978527829856859405484864912348135804147861296099323056602633558445603071968245710083352406772211419019217156273624516644178537164441289352478590059378323785264615082371591443565004859648377726767690232259998250407168535858649168166625570833075518279701438555121046190916733243678338681809451258933774360919168541783265185341287261892308750750393206583247507467292465923978691282013487753801870653898572832684732973476650558163340182177764472538603167450510654074025937467043170259340580323129058879510080141685890234186043149135023160640604905263740201703166939145889493057196624154147547073514554473305597729715664968827412248161883922436400286423043168099952680580836153786158903621886368708800265733050059824874171029956122704109716826776378875973021834871124208514907976084586683842594103365210474730223617705457283639240723633405244353289348846965253228911916895860479539146157881667827515941218101538352209684289758889737656407144860684453533854813487811464239786258700338743236977841553806778620379746314729167790209925746172622331947895713402073347200807807213567151675549316640268118323320074030261067554477676900950181398751085098795468610415787433900770882631097773586226119336461335896769142719598451317664168038324259532950157599393420141280260833817275942189985090228072821849000024059687167348602963477998840262058546233920744515609141209984257217090073593479468903242594272242924372345196878282001224765580844553956579340094583341304462860186340773682313035661100647364196744454418879529363153116003761139690135478356307674080802277930227766101382533981632405067762946521095093965048592184760243003645693838416400698938035163374510307365267535641088701454579071872172911743884968743677452506704872701744460878736364167807759258450022431919424019263213654585202448205556246707777569199811359459921359282734723435466244684991413675344320193108440246069226818683396536282975362021275724127270494532809140328847739009834780585716346945712145911571404739387516525633798408688335890449015676542898758454924718713275310768017594878441593240015238766228777879257517782652143323993326140242373456861166594873705258668957403380640007510992819805636545434369536068454049939489276670305256135669891498391613769961781810145333839403867080255508646263194644779906382373172243018995882298543690605835279922701088312859963628170904618774767143565312373321790454535663519561317930063780023488219917422442330972435617945862481541611660419252939401532364377587815113102771347994022309803244871126961994306755956009059465523980029919694460611081817823630780215641996454763441123267029397253427419112714562361013755038314320521329590145904201643591640355708206200503607149020206747398753656705932843532022110142348813641198947621091614547651390810393255341921551630415716972789199712434413553759193968978303328234528052698934329206658191791439606447363687605944902440453722595953452737582317384481192457088241387420789518355160245435821873599697418305162186558031772958938544280160634777221808089635106851833650401783060763741754834242574235091188428660851703453323970012604517226512908363728240560803609582810702329668590987532359771010595439418002487445901601570829375585123301897753319900719136879379911157048449473694011090403297102445194039853524467877645421414433686134136103770122158250532812820936345517017462780522628066542029036107794580319867941316024034032723903457572763062578993712250966752966685609991227033876127523357035055736313140368853729757486686926107671748164834571273061946157119139316331480252300668919978751532036245242392891195105517365635269057321706124535175972059043264300639513769516731624055604247768171962418349670625540421215021778819719866613499774614189204498982660045765378350415658710640329953232220328544133557579761709895166431504470575277930026037625896925793724466783670594069793873594466198016261894804213803141833095963893805501649703672996623956241744449594599396073562418729281596253329903597938010298635143360410221997440950601280306989811560194162902564097475770310134942414028747850501768796332900715925111244475784954488505326662786423980361563105613501223941286092428176929681388506954414252605997574544767164625651849254236266476889337219247201351530985828748102540203136842961473011274361695169211155077138497171215392031137970681362181487522282795137029420724627139001737397029011621003315963195860014938549905916453954107757087498503198408408717346358203326779974061707503774941626328744660182283064217902746535815151907865155616192359981066236332882598475781350014922426188895235779293896633114140460029810769195478496821189141929732950841935937205914455889973371377777412676227985817459778122376271022871906535304208333015008257563948292292043710989768816153019842764543267440858399108685276089149206876651274121898291115287665160103098465599848056913446875269455797527037669109751179710637395216533623767038960588920105194348185137299413678351888200843284813492376988052091698819257076821834056411501988879752664323740838938344069749136929205651663446951998517360310885598826920931790151133640567856243182393357913183163831236167422345605743855404552249560078020080350367581297464835405354977019789704706594676284267152427576314035974581812518554218914281452155756262091205661498221100160990683700369745869303875848608427865583782344731592696160822378023538514480862443771413234679506820000325328596190910683810212511841942762139016279893614257637999573714267402788305776236820947974676997495667706843825012835222701157555059372596678307554179737165990338493919602825800628912037918418832634480537397751570948698019400382374879697266913034531208900580547452992201946394467359385155498306058736376180164372360184982538070584908414628891912039918858984827039971797061839132067546488761840376061989163590283695103475815698514983703210101535149409250309280713664667275909360777362473877384195716581268380753968526635142237352072308425868499839843867881404323045764044012260452720116946582133178619476973271052333338027567634968032901809835746517724742059612181804115164536213046209965211269618990803746983107352079541318472474256707782672766007697658023063863284171398121724106785339645808093667315666887202467232654189916162399739728808518936191901237910338430505683035754573209355852225546517147692338968034894536793093620257873287698833051140906708673774141179483147458334660298636173607400848561160752590903946873036623476290616465786780325047227692027218022893271793118972871728377047964795910615162674999080367326663343700068856544264109126879646207191696324719880629276292191122274321701085333546310647929171082510340092583681643322689288833652376172617858280707819919756275413133778013427561209390819907248427800454633638187763729281871855972215325386707257987358132001542740951729239453884673732542814272861669630527144247064619019246601341962731733478720973723706601837335853071634322032841105514128323646075924509679252835943281171519149296019832437046984184595962812051726426846102133713739677228277645089695344265719599463143131490721960725964539960534807373354801042457894321125720460700783607427556091372123653836941616886261746542978092239900902616439730789263075948756017910651196934795269748288326615410949377046913949581278932119767063010393813818582222086016946686051629472395036502586738728567113473279693198074902711483505397953168041803955411966645307227378717173591640487449480816456997746303333509758275812062544157052799223924458231342985842892847563575840331344488491656843817248650964063359240973198307862167804981624694667012088704070323818481153243198457936216456053022332414697320866546091486360237266144217505752344112013987303149669375334738082412499211414405095155664123407760303131666102752756230725348795167475714166616483089328333611872791073280057899013344281264504910382485269841008445882389290889891429676694201298538487462713079569812924594568307213780486678007407992210124507712697079118579223993881942346409196438810391889131505545820031618171204687207402527925922955210966135796756043101727447519351986355954140476364083051788689784869279534927301406372828760512514124062690091734910009587402991634000107755367039351293155667010085064307912520283072210326780513221282440569102629774377845492932332850083542740675650063215847335177857715209558847464950668872957624097970424898017561906221473810080881734414172120906988903867769341362402321655309721393318125724088177299189141279657919304375455590947806478358000228078051991538139172815204696429779718861404778243343624340844348936018292555747588847989163350222840128732162295476291794173539305088617122728550842646961488778528599640766678193694998229942976098381077559743118007032733036486328693936427849189601422194302720384113765963203216628882991493669877950898402312444256538610360520811566126499014156932232496414650094400302508030189466210417705001562577291257916858460090624505336449941894932482436510575396747895399229656329538528230008637333414291303899338234745882361318692303478448002851256725903463022792180173156907326995678981646738982711159257733183254709371035098158423756779584781817069742886374566838404249543197667995002172992769238611245217480976256944083684995674616215958469595355227811646727466835082915411601588850268567090899789292138352307341755432914573674407590159841626963952189906973734200652810622422657697953853008263353458968983933613010692004888195478586294914601122943852946486479711548783917979651622395035917660459043904948842568863773307315395155597865545460223151560615315958147243951300802658487024139241395860610381364242505800996718486377598630474058185219546942322793542585772786584765627192794219043298732493715957712605875777352604992376976639842133613857829606568473719977932278067296066667992929628800266535534738894194032696791967698649901145469530234291810842327481027827577149782291392779383204244921047155118176554360868546903849640702299064657143146592563684230238855284349680335956363106751906994295123240799417515415734440893845420405408531922399299211426153790870760487863014985512288299314811943576216787478391335012788453722989647613652846664537697325306807457694798589844320969523283791097974775403094139690225175392606542351608843638343721611318194691750621426962375115802449640292460375008175844343874303223002642442908111053011866288496466042503854509344707989320343383315029809009743029831183983022850929571613005047133619792597667087527056409042821757252006314464462067784673520997073127480180147184054482886521283946851848713749856550433739846577553298673587176714137244822606256813213222372804004811659293725501960617839143316104897410695818481188998266489307786093476226831702152593104277249621419299182712660829562458777462400672230809587853681428545668449910152799283503211994726294330600512913087205682025604174127430702644276719811569244368552979535818979661999460526187064553548142093602894550751401540142941347362898392839629082485885530079479744875846462333815170908892450823298308739733872680148150336759422842949265013581898197631171403173256997591513184536872969232857638181706672312905544424103739034318504907245577694698759283603282589290385985936856948705049543049639600561213836467139542181409106602426284602378682449538201986778831266673364338359565038809206098282651010379001617365727685369059144844475080965633510887283772761490675425832812554007352226452751674689308031321444413375915667527250019032970162918298642200038494254030396535421180639861449456360324578374334201068618470836019122260932623230381606404601401375896311570941009472227782013774698913521462179895260289651349860724661170265941384725286859917690069362309093605967612545970647070469053779323828681254159470717716422092146028359429139899112634823021846949771735318500192016669617554907996564714524480144946440621733719683885421874250657677519335403141726879901752567670483955941315959796792911345492166755761802442938665258243485956258839818852146827589018665013283351197397339127945626820752257861117963435603285839147881982197881459394012939916331470971445158321311562598778165006823209963176381520606919210209764849335556317162623461967465349282806385202830148293970818722369740272650363200018151392167014643417874440498560284882895997452878660591531158377824742952469187428670618947190189847018302416830878088563978507520506270083347472949785145043978800009121884477262552230867999731383562196467771634720562802215047146533015456267103405918195653585530429340160395645624281604500327013616146093206541682105639715215377891054736421570959712096569718217410232195025667730115412218492228288470397352068929359946886692490385794981714978536430630555691967860980988674688779230890822334255541338199774501278663912641976330659995051935910601689427995988558347381756156326825280164203549497726320201880333570318522498236239137272756860995306793275106494482566106769006385115026848495441036461084447866839071254863932013280304552706365814389797199244389063272172437038753617557104451137006071908893675801946547317666390468469390521065579195218403335287744900553540919795073615590505066063937683251924547578464938554299939911550000906297539091710879536651933748449168049638473980789747889645591321769944371247958628310116185043049818253809430370887772079982644583673528827837704036700420730805062907772317406502092795825452431377492502482731934541752419870488618925510227688065401204627375904593526172395946948773700589106302983804108675322957421340687742880037335133048329600753896210280437187816602440634624080988646152163856129754168026784882395859972111419865166459566687150352314821928494921862602040551433025028501188746696090950419660999218646441214002047556866285640300405802523289495505414006480831747269088263064344968747929636952413997924979528365046056773990536226898426765866742931899904164859686323707207902289807772753712262887826041278764634343517537333121115249692840625768802665029457236828872012712037278267180437951092300209569049047954930984232859841429991366379720130672917377889853436900512695178389566613242328053918708703399009879257255677060630136731558590183116147701942340208474641076004400073096055019132392945076367839998420842997038177971613621651632245670587352307593224201740875856099760885424826088102382171724760085413158487954606754534723179954555899783303238446967247317295606937108978053625605055991411334056156431944255315242286319041171394942821594352977067180645740209960423476835409636673033830530914139679412250591097252321194006721085328358653220014042706533364358532480775867958889729883105125266509727531685288709731065800539949974881472410652760231255313915292796199041179966420413886267202198251969125770536530387315345477232286846707382547868667746492518879989882659865976222818439307327380699658963628476328831921702864026571668305281697654347760124690408836905510682719226020390041780914782558439122785304677759273807537215835503985566552660636051961077650445045450229947985036934551507028619958431044594204709538188182612396224680890470607968226728468516209601314685782601078825839818322608416943835682515997510834209291640592917096937212824141715941032152149193159183685738968473284805230482527683463170404384325953933983223701084217541394372454309083573842513189119586735780913428159500769156467576955649593957530466064005518050673053862484177206486594085500894943889022473985827696687274612097057008762653700910823313899653111326474388008664415556061319805050736971144456246048722973910767698377136430712203036590342001416934769443061920425620677349943357808502583234598045365784673136847576566919237380565444491458469216992893766619257590534262911420833371190590094918406075044965362031841139672500648233315915688496343244964590040277548507330835916792913773467283796370711058935997639888303909027825505369912110254941494434481384032306073972988463726927587060251351463407765300247262003996132766301292252205511485335041725913576961287045878305841613910786367932095509231110787007510953168811915198702880060930326506280594952050364317834568980704612175955108571718571211065856762478397966854682143986055988739730010187570408508535767402427411469367383945997268933169246107438485813754220047160992211563765795087940634977097057693961721168593466545008291701493507598291506212593013908832030767027852006495445616806895116223692759736108631916733530383329607175190663860308845743170525598503695541410570100045646539909343035512277208549558372851993024005691445891799209718108881838942074242892712549633435385946546472545677061301652849706407417509809576246617975874656206217847979673739733076707584847340301807492382703652044965856978919183625441159116148459986627742840080382784946988101383599817348985305262996579092512880696592675968006219668175063108750573577849365928735281455588358475584285045514160404293718300060351290756365906739450872074017778182673589602795960932213220123506104332032185861916058111876133296202158210858774552910104257269473755085215885478220918007387659204607118176730565483743300712935929235886365663099826397018223347529423008531586249151594682890193444617078634100204658545252583446377369901866293509351720584599619626529191130830784823753458904920640881353192838193456156454564359393357181071490242199515874630551086100128180441617591261959333570888211487040565349419674486258726162242549278938367482831443503290923391393682270118056842394410240500776352929990765154621765825354171126047059599649895149113308919976264843875747317089272612264143841084165183180477610644218123384601157170057071636228000711260570891483643908179171496864360907055496566136104194126290165714677802803895126911726712043240815068877632107825303170144251835250327563178395187983511096515840245447552352743368183313394538854424904863578719697180426543047555306407423579753219564857007548250635245585755059158195235359334798304267714644417645100091415365287710785636314854050053565249197712275236337933711939133232651196574952349664508755979123953720362573569125302844288732341269410165789537035901079744641634275745754291971448269981373519321217226627394295205405453317997872505801311377977835638469647016583470224697673621827867958496603091317603870707851156477890853551257795354380435077582651017481198010910004714489471216744070837174710623246904254486989281455772113011794292229046230862566540808993679378059905719377628903206719186375438453962397844683997033542604850631547887968956954973200495184428556934176303077698347775660036468143717778745288350727799678964232898864602887886295059367058680831265022507831755934615607326029825230539395632422163101110612020498831224839638711082972969826751938456566688103712344309330308583426475669798844728738898845157651066240229340311828902042571496889364444867034303508133268710921241604898268452797343249153262074769228304429222458936910782424365869909256790319444890014081892412867920616376052276038527037610776562442072846441647200044963439484540533539703351176174061782736809601840092281421114181403327219898915133719427146981937261962816898862138994267192735339075467552857916149999655026943289022353094968653881905537815003948616060114711143585618880382148824753408157170589095456697041293014993597282077928825468487008503294957968426219820298095658522717952653077201680358562014847263577192402233593820988055144115821604704325451744615025790095746589125046336968067032428912467057241659369071995277145759999163587302683397167549340421601590864184855835702952888661560082473203054884117611368791808275793271954574934039639094763168424438824149079956468832863389136046108752140356368358941290163366320404036655483834538340105750822219402000563994333200031650128749981025984514215880932950534170423879815962761596866898313316279143304171692691944747811010549734410690673348565945800266773147491302049539213404798261202835451767764957361403480370955185142444662392894445342710644684550107296095793463765266114614139662716364087944643069551539901829050104115596118339695951631919998158566490219299107895916104616572380586087532125408140191063451208242059301387521785980891348799197987774614692054932093360068345791905658562091761382377011770709763120526667481843573606817702828152163589764123605057330125493774935718191873604133516279444397750325795474037148153612358999391848280884627023181962299108279477077043698664711685881286692124816879244145193042390623318966952010849441365756058905961514839647417884672028343460321871545197946307578188784723076774533189914105002968723542361409980032250849264146111598725003640086221395904125505092749638148169977598972586622867546870764751462888011627122371794241157394382678095552684411223220519271871986714723033256998258379347231782040660791045826740870254320965355683301572071515812534075232947920696383152071466151560949324128758874668310775975119926658521330701856742346424189698495522703889428486907807894013046495276408618436125997274021212459987562641786780650055204131255040652121533648980280607234309558768049093349766208475705915490147850695440561706676056981317691946464483325664169714017520043349847114487192567063139810825203358187463074117853479593844513252394757550140783659495738639718412148141866409983096211258902227784039803924247365020105234197160025124558743209500780861594204751361210074428455060267160702052872458058520600653911131432778385306458311644110458823371136405729183410090248843569396870692636773109000722642861355732204380518548537358406400310320685064461388775421874346182116053734523391544769178926766445528729976828583950462948314123302368864061476774574995330842019395243798278253217074770054419852388197935314873090848208870450348921365153731811433780727044941095823061613207056258889646197418996881584247173955577221285892387972672784644944336024068214378935276904040540732629681843663038381202116755711084433976648826155654722975019227615545424969493037887691669175410490989556074960339489392063556579689419375870900110465819406313701343240100780629504977795696363455954232587997764480140034072315186354508324928496885615815376097609088936881626246264426976326863658225759637880790402627368626139900177661800145242010133159344247030679893227873410769084459094547022964660751632598304762110155119326773667107688068005170698122140804087006894816986072254648873338688544024340780816657697893805271849214430821813961600077202689120325651998547080272062128155948355352639159855415740919654996001026417188944572382229148066705752966571206041066846869153832836315824165278287274444005260662109823420863977754084662818763971241662011557895178822861252008244378380357461019301857531876349083279526663404994187864073675046364642892826571144067738026882885376191727421216317313484580508507798711599106578979523326771061964142085835455468926337772360609955776111946392871959728959556441650598467648035285599716110367893586239650700922169209130836027762074527594568933764270375559472789008388216520129291695595794364046990713117584956298976118619667032551248114021813018251597842555319753181417584693919422914143254201436891169016532779754873164635858494735816720433712986645053175687990660130515082184971538570816069625882382424148102666403716960909085903956030852704469135178914778067580933532251243174533598329622525491695068080968803500420675748317405120320346084857176085756923566442902319395458339995926344480204704644481666706092504609868952857539595899112681902556594839869700090618279379823344466577521076312117347449820022800493015455069873614401240854467355696772912362254162192180449275848127045180634409078482716473396752711273436006455915278483623513717855705133650756199883841949269902140495781801800824925404499628959422120630627773037324688530777575180301672157790343812137966115500852987819984552367818123659162828603678760730870346702525941042647584379260855584505721094397332098257266923967033761158862062513610655429155813857438004226376876927074912184871164480419929559581260969450514234511771729257088840050439106053450864132222491640024968859751135585510085401806108133817070485147760799879195041626620739380418503678155546873383297975239433683425361521523961273116192489193439589963740834150404561070925077989795785985047715906795933331613314383870831566528892099020870749496023951076852220762628745245043000625219928966214680505294968780517566226080219976771343696191321703261439852902582572872897348104143318363991917938033511459883034164770508822558267212474579704730687786087507185388422328369395450835751508320447910320699677658658463682398254889066580916024937603622664436377474531155418595879032609681774471308024700146921960539513720903273471896158934208635905135331462065558661991258727258748847736350467479967632906852836937323857360931143317209632255388203427507501440527933693567591800425603391504116607244054099883237810603173512050374939836041976486252585362479438639896111970323712897953141145612037002339541041229973072109138070229294361544240031852737854226292564385106510406438669022953572958295903425752028648419410040644565352452929410227028450973935164114759830855510981589254542433592726754532699181301732469596921577197801119666670702028222003517859218404122995927584884940989295259711546300521955981877889394148818407839317587753514276933688181464820040843352787507567352823204377161129423966503258271345997860324987642323608468355716118082204070075827192881837443138251828970482254986389654817811041174962694710695990527310178174864631896204471879998621075073140258542197479770897569141759693997728033510224055610222611657234733653918964918838571976689970232435356410714714882432532459228797783877591826748574326968972557031973597048641470996840666942741345066002796054835557579980032313737922758974569890255338132327043714340955137046685556797353024209714375283717942803693707088618754145865324534725054128830568629263559844985058129137687150670800132582073304961631672721422781951929169101981256654222526035918420194901295613689157872099008593570619497529383759437154824867865856941000013163836332193021658607528236903596727176476856149102467599718427238772902790257913476903343313774701494644864856805334353373856263471460347890868017613352164330307139346722054061678820011167375923141815333721145289006704263460703428172522037028793602747197137329739953431255637910028869628321089652735761156409086622866141907037150650354356375345096149776101373345147695785667831626927031745640924593934093525509007169981113883655734075090312070788110593796486740231479318886406088308775289407730800350331992434087788196154905789843032879142614326607438594582122708220536581599291788145273337973170433827105848845606316768844036520905306894395228186802626395762935260418027801857604850746228030577848195188024889112600170820056446808324895083383796276182866373689493712319076532747052317057285097408689133920134180118078380695201951125522272706778029353723288782704221882513889318534136663745375433385615417804811304805053703067528566314979948102133503235414194158563403427898194741833211214153241165049605693181373945917314149201574760838570009477594928788407796856825836618619446026322189016552841220261048891848377815188836396738847651531513530716580806658482704020132648711419106958084947700139612079561424340333127580047997208094725605949463574958333725008116215150669938513085813842702733194490288581289522780488287316449975638583628127601019567673018577347583724407017452932155324041258441857825958201553852169799616236715877971917760989921718909890779999436274320254111766084842527024845021724608127166142169924178218372573011961300564231986713274669514277140795779102190143831409182887364264073043148237001813470860867640673029384781775512031834793898582261742097048025922322928471857582759478373777695341588678056244184348447590753520646105394288301548842825795184411209561984500611778304633326487221260020859937561655956655779867223781454067906471031818318270807633035168682839145893647579554803826782162080835422728121189725286033423998607550770449515467693468090899000136858369400462478039560689870228797494164360759600180302955067591911123309149149965936367953261587733522280441402390205160238229406456418706025810625348213566045734639817201204160627110277909866927076956385574299279346937614752738621597321861399553855804290746176311097564118698059883637572846577126102026696467216036613268010553222780358355469469545869907369719340305107392204889599728242776699526757691395769304216914756989220319929898272997315283298646866669731563464197301204845917648183957951902333811777091191719042940226189121398861715440234992655767774633242769469858238691829397959664411844089367235894482086493017372091812786152840348309905233353471336308512536113300810110333440956197244241547614068943066049318073808515166061913158781416966149751265656168752624930731161057997815143629987780445623813971759580254606525922155432463822070984088180947249418341706382676693765368755877131174915809701260874843929028743412197852041251871649932776886408643042440302072060648141841849291068468318629436668235218475245554721224035187324923412136791885365489867869324497684469804038759086530720206040977668124944906693005147308836856718836752001602232058951090134826592973590431860081697346046846602162563942885842191678325477065826767866700212541657562717740271252192705847856940410720125729532828323211339905966216985794457970799945964664155023977724474571072839893730963061466493088650427616773648019821343709604106510208567249571502223859571505761635909741232066071116173600771564051535560904299072863100833201520361014158357417894439052712205988867801055307075506291655387905071629462267312716620500613598430493493562605228830142186226747783255205522806651669576863063351804383267240770527020423783884686085746309549944236601439064456395126672247761349393283469977556457255408330156132183178855562244959170254837916232887947285933376284554308702242254399606792390116194315977334209782241609765438769939231724906704663154859313303084428044167820196262376587602193555218812548822289390145672575343924462202528458004830803007247093901262803242869918074997165751853420115592721507985069899668839113013924185501108846053129054535536599584756978871521316826222715776838384380465632744833356751841308586507050954338898705534712601005957843589649833708041190979571580958752714273193564795511518526897306101828214166325607428826603213016724875297537186941859613013038974006643285331858396190532681769032742047790009016074795459250702449694054539320660755101370791688022219824474511133731689152344834344358763939855461487117659533004979861894074647089096174064229637310908711015123624587970781487043488852105035811832486100439044848257438205007312402092618098481440457408160523285537213539483786285741472580029042253000274046685028796821255959832785131876792387736902135185810065474296920895841054874682544392419173877383630417232687936917452259670749577729776486275912078751047512202828340297427766700986982348494267475407417785449883913514090417853766104047313104570286946066364927999086218687253015598027071434425045331648511347758450407824824633577200127355327684209490980215827573705644422235768230733170783179208275578709905359041298597469229784012014718591600986736053447686284682166533942535783525086777428104293683872045808451197725970458741584879269486374758522740057134910616923603741149843507633746748960662142488734939379506809891089581791834889987385129444798145426135487210485335290738163174825285452977356952947373683739453609372169223038465367304309026477294540238507373132158816403777160312966081884752601132126728886570486810683123160660555820257825481909923981832465037906609871686948071486879953645879429537573891136126315327728520326277254777047161175007635693388326380614957714775479661094688882429145201770882032924070050318349408623029516149600937945816213578331481879252569626023091988408733805671866392138872532928724952360433472361407992635379879765995282526470649071376821935899662224425274549504215563149559443595296099322195055222859749662772035483346878714122826201027579229376835657485517934678286118920265130997096794558405513617256276182200257482016045993813424226483299730843865261386619615487829183254878582927699884449413044824841846567594362333742452208918446342407138314680132062823846396380313783834343713982905643852016687932023441285156258250360312431043965593841060795968372306466131416631163620841591901408935633274840440825438893952133184506629534767066499834674047214042938484908336185469471433808629973312394533823696310357409903253831183852430292986904438986767207436732882614941274077379557711020595168026575014821168975878289674144636146508979086966982563383178011019016663828928058968853975764219864653605985651192133374335298722292405361800478602373498663326115920239783148002026548455775933756421287398328729406230913808462597800877328726008416806589819576946512403375237420676147576876105565501505991073443345801087546810407996003874164172570938645675485264325811772330130357198449883723590513455795498928678235546961370629953052158450212731869989680523595889700741576368466587747259113981078531135645500191639652227388435202481192805985765589055247625227877297216855576745806400133649598721181643411144630537644054736779643470172691669486963564317746783613396284719990375745344116268657597648491686190808609942020857878947683543672384862302951566553552639406277436452991804521067727576647129253973163687593434951554734005529931481251572649962944719294264928641098033333390509180823080877565241876327188679716905317353807159014467136179442644558579335544274226363699863527629464482783919670929290266724596565401657198652979234492022971681968848655330252454285233755199030293555081895847368606497538945853622274913715637379051939548800159538270739102625377330282838272291556407879749777408014791784948915570322453902298442246525616314933864909692858668725978212828904136291751356795841918638794568016247227470848542679132298182973457871375413443571913101784746553753096043013526662949678745391061595178515022800454428573126657458787571806165779648395422938520039128872716887142757270324961067167527380780322011764358434054547232090993844821002478419198692378115147611836592060625326534003181665542305891975763949182208409000288828517032131278721612094499750734610336031039994055634427943524273078223173364751801001045829053984034811231789558560435570071601828438633389093236887747554274850402225603391929143498756924448057972872548316810709044591387453975299371593677074172925120420577448696070626696868898425498190010271977224136667043426325286869347349654562187148160824259540079980017869668682435608184424456198395158839310432784404003831569746487191942223025535552702840197595912543695639498752659382788480519075012193645030107202566948055407503398763203606087551743598317664579885491825595088732972075100213338435878388306646197573431123273808688867665793704516996968959179460766676851031440195371527116016630139316814202909313212209988959857396064016580007151881448133993268918614905630710593806627459876067638737287269063128039517933505333551993151735273870324517015449051391229026139170442255347885399632008498754182892454460435122290232166722717739415413684418161496269745936350562455981991537902317740187026409696037820164154350448552414935029490405931407233607439481108745256698836530422094053384984373706248693120482262593483527281340904671055612875464644855288732954204093488622378517314593960190538695722790937094887652681774937218926771154925931420897759379957242384473013576296427644676521363372130640040049783462638920002804999178118777841718433452614032614018614731768479779482892464368813594328710087035717047251469771596258367728858735949842032950815733963871936390346973158258880744508333885067504760581359307442144336794947116171035477711854502046233706851161126910624083573331272145530177648435694425980731994109993055626323280888842699949114707138115336163346493197033691155674461280777234914725727889665652411413162676661027356545081214625933729306756622534551252488647677822107908959064189344490768788977801605522868450325347785054534224148179479762428092454388611673926476276505010575702512373130212336485204858848392711170999482842475083980923128487109098326345120133396951841592064302910108329108803869989908889440936645420504822385791149616545570804816125189221869320928826260205584919146970787806029154319361258258763567975048282047101470065278912233908781185895192571209037950530702629529403145385430879029804985272335517273711202778563915736249867467217752249732299260815919936004894618218147795653019756944193949053341883243960229000102619524322057560582541180602250666769872723419231185545740498954177080425106025648497500178195313034461468603666064627230942675727257929243071441409428156966688414260008288752111785336558357341997896477686605809999517887192078950490527976621513264064119158080736684235331331089747503757298442691480014141833456399106045963656712264856003206559691392270538281227686187515304650473443428167613306169911690747593759940413903643405909051599126009915270484976088282681720731780568388400797780122716094929001618303895085621196877676633927461473830805334867781542626347041018578598420853078839219627038983745280037216241107939872334108444880533553265918082366269263731889149356064389741539354638248975563322685378439205798396142819244729826013225418601836508416723634426673142337869871638319013178909509168793609024817315521947872942212854759405852421269940673961354137717538137224377138306353545639910394877724099531367792775574613754845813042467990412798998954280282431558664613863877172559699367497427469989586026562122063983150698044107938124747718349627787705445978180789904690716922604516477923570608886397326189298778671245542618418551093373056804055201049269631679312757691854917434870093668181859652202596973455755361763720030313014673697787511692213769717604406227671757625522514155458338595145981037262346103032020034691697931873696348219813264096571850475416209948414068985272808194527536017061613548311187203979630777431409597774658732734891048451707326117056990762026690751969379041550777624964213851551524124005734095079897976363208363708288912772630655778499379085420596834275481050241016986540508905894528474711946628606887187008807730589601276204126969783109046137599917903277174763809670612749873192037715201222601825233390680747199387313289827552640302542403428926424358057158448836843849065197982419450845258517496017547074198728212986717059426439890789934344309283605678851165313038365240570563820066152325784671577524267567689496060857825704824303919452595886190700687685802279957891717622180400803070802795081353607039422281961731338306556453276193495425858790066068456639448447420358656207727220276512352341992580226218127084983563445563953046722667092187187894714638973876657157189912148965106051358743221694465578724610126902007370036651499143716112159193074790447235894059915920214463909772432774869515197778137892726800332950444723965130142983049826895209940679527144454403298801388596397387404187351088371560846581460592445492710285005299274163140177479938079380537698519508149717801092007983636478868637648337024140078012111507466215479925207071239089486904157296705299088392469349160381666095676889076305631787181599794945674716744164214352228950082337567981184539390278870799142348224366333101715823187552350948756728241937829894514543010149946707053050757114736168293216871040289307833888964572683460575335356833623889292749767830982391638793095915902917821061730221281236766860471591727235472354172196275760219577137885370275647393777101400960304511661500245980968680206312938434862381757946915496524137697571756321599527505040218857260940202184351803677931686194219577550922650298193876347543950373263221543069169564677633593877766413954848809445716832621237653542203702816835135209382077269567253844178691628198916388525913370506812650001176009721684717075982712448189045638003347857289610737330010347552262050306352382604291737610094691165507715925178993449488028666474366075323631363597473734161667857068321433779418222856565036761006268437987395670025760601148018918644921068488371269188860079700922310508399152043308042140170515119807188582009610947098624775643377596709421239387960913424551926718759601641920537184206435208511536295001368308681671547657166081558123035998245334667225252259181306917917794113834739786940217079289948518998937542346630404043639278145975844140690065768457167539635009755742864872460608824522226289820346331524833378254286734676956071828734783224509336962241966453359065812440070083857133517934203737896493275680983269196726273436446011867311624741907131920813923882001020800459742988381133387813550989056971000670102880270893439989324670785904862572621099223421582837440281225134561291168453635224709806916084275499444600885925972473775837254945070279151408319910449872243331476226791893037037383136618549750364288233049245027246072821667186610568465265903054570975328861180877763092234101231227902313615197281098817117768826259529922419938693438655874424153725258825202067613640918180304064761580342707811339807987239606644302980269550671063059389375960787453627423162396439797455208861694786157830429123558540781194430135654439990657214820467760309092819317465534470468750550528351294912874839759372090793606464495681739312765018819346193735996847808878640572716510297582184849206179406241549471784521425054879502438810548269929977120789057369172258261464424233218394597141154793667312963963609232648474623137708564849557333763048463984049972514614994072859695804663564462222596687088228709791894158145605012926088084499710538228449981401416697920202457984484675516489667880113677087263139841927921827629529867745701748588954783634467185285340132871174557809283441565961927093047424270667253921514551761057117220485728497730884903326870338844278652739042101087121336639035842432324038854674326345972134851948611636593408233331133458518257657186377063420597138716738101861310270394151497204565036112223395530303670683963480688294525396429702339689539402539402960778314198075985212730927605807044974316469436210025334698302724499104047578833968950840051014610611546558121880731807099586874534804161796872189196886168349319673313970248717442050986283031309903002230398143409869063986070460750373882324676487935669678299311733431103277673663309708389930463822662675485887861839811960052758470617822215065672413205687421261579556160341674979923949747717782320019901928917907752453805369270713421194113496200551322448010896495103575421049922216508074205065950285320971015900741712457257245550675877280970153830365152931626356224164167836512958163822845788187495918904572937699574874193795187009915310098849234006918544638956269626169162082380985346349733818077240499907676992965061229202608788225544294375589930554426185398263948048221628298732486167461373946293902028216863846391743796809110835931985493645504882140451308432837844545085009701023129232601014597929005817012384926321896034952931764150062694139263165591671515286194060321113634159392453353555149811584136190277668462879427911626531033847403152579628900215116195767755822129677399656742240218524968805465529600870706249941548452514537601537076774197719093944347795803788762672592793972409474669286403586378096751121030833663094334999765268669263515801126253935573754195684204789564184015692244789990152669633469195730301777343838766475084184420057828862427527067755774991538096816520471826923288760225500599444401879673655329641740876265860796973185214389274471893138943388288728321966088962502570274605391356310386830652482214901198154226552760663157777450589766582941846300746491001671308622808581677015654997184848819733868787831770450784059111703533782227291869058510277224513148008651717052747682116511879898915935686136871037590941921409075474491106609987442040472221008882277681316630785177657062670962041976933459707044686196050161707090569741933979126796384795405149164023460866729860741003720658816239200004605139117654382836655407596194657813107973546712902299517048497312063536243131208713236053663338274293028338664370312859172647380247185636057465148295646205155656812541126868452000459049497794470293673434134789873785150230885760984306110478851299534557437524703557648297828550752398399051760894524672772973750517348165791073534727233754657002626945130423774694000619093218783003421222374015620475303057454786179838721099378976283114030153426344760783930586019647528674194752622566411741911949337720820381034600919764004728045220701068143996361258378096569725551436404896918695421698612545881976026582016780348246578006065572052071458757681459229911085603486047676011983497675759718168348523794574227616693016332800560219943443715740408635091558589388737427002446732535079820753670298990842045684039180018385056374896871705039562651961794017183476659915491943561534659731948481071138167041811281420163885571111475841086857400011499980405103051293701017673778678194835178730431379766068370419309587641265983638323085731763842374828168992492808603849663932215304483994292226025766523434627299154719144760078852957998253582983065682107484355922196889515409607269586967133735480448850809783783446172248028632805034103727124909361414352163904343945954739512792650253076981211164520876892096731580226023967393586816660076744591043153181958906224256663908783736522588761480963723504338087608642055947108515299889200815022517500961594339858402431177154644136416212697197463129173684040281571339489525536993418167706790486842111350538986546169504094511047074181825856438062329785768827037774518049858715941153985178009735818408460223229412975070765816624215966297282827164963405640579005579883747423672253884837767820555497654253354713014902067779304932002090754573931311827934965057739758832097223876302956973275866189236925878654872601958895248899838033834298941711201253665352135069884403728199920741814388666519800646233336753148267001385545631373680421506806149226546507322995782298709865440315125356963715266509253831500513120229016451168233734039221968972486650996504183952875963351216111440972181700711678172731785828780300398371619233147288013421463712842968584146382001192438335253384752180717272172056140360388929967858962196396056926558685086963070028657259944462476634507456130511155874356197793131804574480449658958222887799612260239793279669061120988228092023628675223831828646398112476184749138906514669714888606985705914748853519304958526573210539589121431973369190409817409099744790911854003729519304588128213478032206759529642647920087181519135041028826111125225138373022521675131545745399700650718788823968424030429779082194186360962515022498218580904717046439902832607779274229254730964547318733469619749480725395611943074369067790095582178290899901872842633967972067410057461181449502080341017841086582212117902907565579310974196268761581083341813833513804203350309938095320575976984216490733742429000452072350154357924696353526322309305340453354078286446009764378247696851890660886649331951717795614168237086338610883115404881904174783280375626295898749251562654803635261673980938982643818495544029071893107677265517664739536923051777346446973628814605463126835189926714979390087196272036592813765888086314038304067596294750087450966911428938020871685115642302558254537089984482893257852830186636959789690800882568773543380547674289390544314915963523811849301900446423888902858840539350694322955856002513389026264909232415766153107506302574727132611510700997593420941198442426670743936653686727676086443243165123670451690584951894266559709480921628070383530716406762344668042211343168561290093384010188790474629759409369286157957863747722562439490481182803481733437896961167403754340606345637193689799167077518988188738930109790267538571942928739421791634026206847989805439121582131452957863381036722580379956635335773721969330466162401367164045353049092591194120046408871371282797029623743845437982029959426179364129711645223075853779314654465703870772131115772270616572251795516446039459215258398856623204905782329383619154171715093653861494036186989042477017981438723874613602067457415637122052575918292887843043931284585883081132795098651918052712254846482048456655320212270987955409471082182602790708965231983896033982186623630192885933980627154133535753230760250949247360026936083218975951454106779257164568715934498820590424491899173924840346671041458395272122143358530163515829364844011574575012596683748281498488131192814707519552594836534589919893335078685382223476266114128776467324820877989278472049177219304599487398176667924258595829975852023284108464238649952554879593000138046730584351982839813706036456621726597038019410107964737332425760905803951527822119592899004777416499174086808622761053681537894116356747111370053111712389695343075696472670973087910561693612825543832579176198827129148040327751009044854312908446380773911643714383972893643924187205488391636119947446741914553465712070735550191823724261757743979779831667418539878032932122258072671992697556295071563100928908001391566077765730904438955465764378471924588762879528983364386730955233957716083286267360707277025950526174087731149637288110243484421689715845816413844333776969307600029252518664609396069639381358372072696721876905829475297058021813530726001742294393917557826038382565411413268043952867687147784000104748402670035315253307560499041588715086887605415681665469053784776986333181519735929002369508221586855634876141846693455243703872389710156321321193716507231324211979994752646954358173650727391643477944694561196515311458664827062116733871395736131249803372945141871689450253875297469533837159728058175180894142197213391554612320724712954652650301287648029513261883503059442127854497993596867414747864735774503509864895746971460600452015236049669840497101746824603544406151342131930259410555359295509617394867260366521726062690299549365326157957537203743252576017376812988902546867710342344399054913613548881394053002947178747630404061127625036478376007840885954434540137437528119593828186988018868307543552370977372683099566579875387598194708559343925088363073924674073398595990693626866663975027378704673910543624212584430232240235935612167257443861111852205171947651126162233526242745224540720251872065332611321112296641680214111647649542245567215215892024096919191456327417130494593038714518304528832841300190259282755596464667911376578516838709022767396208798970073991843087184502720897040513783746199833339047279073093273616294537558774714074101824095177423241384117333259285929014912829144993660656499376860751440817031579494245437193066465158362894067216688867157733052693846274135743121300532272171595713606612826371740724701182916361396457421013104070179283977747432376695995220567454881602670134063053561129647350011255262470054655336270828921618363498563857563842891440807477894427428139875095945501886333147973309976752562638139407450239012728271926554518375702488117919863283724873552136060380850473288436037300530487905560410275377685926040369740239138584811405067797828980162664294059082158160531324751373001713546008501020217355664551174686259040287247108925996054571390703971099709474054069079163711683021761013350541522341867135504057143732707283974593004580790690261408395883422456206425925133635227960169120580020653440037493800778519260617751047129157317235310950357810439263034766470462251089435041386112562718379740178219912496872348979976188585326157254467215121076526458184603499025812683151570568583879771426103386106500717295351682260758971061803329159312637990617532720921245263868023727866486912653346386320096682932026926719171760768523710609321764293109478731894707961472509091750161295966979373329879534997305913250627601566999942663549386724071682391382711757682192791301236930529470356478575537347410345360357300351940969394226301083709857610195390193672998040714861398804447088472878808409630266641401684248479441728774256185663950685175471087819613438893733251214621985303490939029777483410408628570246729210522137853842638440274754604857367023497560780280072549617365789912801790621579713639117326224706225013548686965562555663607964602166355437359793301986208067626006203013707859274176254060060589579218522044336006119314540162866732629955103611894274833924298985620307387786372787230901808108805872101469097501759034642349363759713260542955278976064385988953823862932093091365312125211027707768396439989994626289353615244807264559112356603182762902766400880768942220242334459667462977322522967324507593880365172589240805531753569118834208934706237865358730361814351265686832203858650790077968745549410320040106648070344034049618763366605286420485656155222810566185438159952285822009283242550298778055992845893021954168736330159269968262378192820839516580078337440702065810955602479805893646167552873211896421446497862344386470339007336554565356558790259970509912751371450740432278563326938699076104746795450843134476981921443778687029410101740551953396144200260516194412760265140858797864002172617717472897415013841266991389680522465829665144508143238791611289421190025920714590301641795109369961011262893884461251641050361696384075843359981411573771625696424394611764235827966540329221221728579241310993842238596033701781522754835833211600207749449575875664474531754654527447255034541902900974063507271697281969509573546195994973013942728887584925894949600352282723531472265849171427966213940375787353453234925958228239462186086332952040789865876626110199196843599099327887178251240836933841855921805630652474348559604155747451060539639757085700921582214816260489150330371606600064340006153395377641466938924657725182813598062788064557695441915383196866539590898328682506562295239969392916353091553823593978722944825812617660867170699859078260133973996690683045805399904655716061753829333048674708398280212514940914843106551521350965855991113811895916840939646734287144782885685948947110925701635910889385691515343981120894675585507030684923313688565937134006625111829896277755937632638019672545441460527381866901000417194845385513493578789811525849697463493215452213288235463027703329045009758643275487205369358510753395860862559376969824489374158204817307047965384067473869633497092984537813283919615802165075568701066881186495978680215897857228654811668116702446265910382725513720091117538825843526029829833568321540752515854621363751412192894951254881433946140895827123684952801273308609051991821708418623131703839641791311881822629733889621324487679414724817922280218666935422516435889375400878826048970757626406178157300177260608464936948902973613787202198579864601043005579107631254781892562800863495768455086719627850299119573347038723496985112949650730991236645633319428679483886064103003455223718871896260299893035823692965151824810173889681913645808911455356343093214956759020142866810773656756499712650447756660651962305868060544709530908406099433156637062053754635183792358227030085566318289338221648191691919067043578722505552781969287255528127574051353815495574222275723510739405984822544116838461089982630456786077571328280801095773195447455595797956476331547797880418641116027510259315085751894404139401175450350665173678244888792056490877067345417160002920638654095114199906205264527643784234755777180575457466181802601301551815197126758890767638440376787545866963131823608780403370868948371365695894624574265734625818989897173937809048080585625623057228316357974129130352226630134058470537220567787318364203781965984692903371379000602021801890888535373025692444528693630417659936975966353092558743422909174109641689329456545136890845957522637287194538025426017127701626144462870177393160799605106213686328774974301472986007109250505973840797078525096823990102984984974668782741525817480980249783025283892889086000558010595626479554019598882282513116793052691692554810504264344215545490558160915942353147575447993967214881642320391972004829792567568766666028246196281055468741893187785563398211264047792447638768306308287586953076968060165884315268513211264442265108931676017252232839162308214436145724997003456011166322974830095766314131969675137452092437015148103838617876414508021887917629005296803608253574477131608399132708839659918357615374110644674717870678297788140717754824362195649308678836091519515754298767773185785903560044948061535761099623383568452590665908777894819235000093193297521042028395941775521857419718451221098985643771708513433820783373378977024740242061410596087004817108243013205426138956227286335304329160494864024399164327823385135744144510108538489254928773250636435029548680566213835106931423004794989492670341795401357960872671077267126171168010720205539131281841549006508858119163547096134596001150001553461957083874557362848103910920689762967510585945375299742846227258473565082364595712774984210336279501426523934012270104281004898543316058763073617469592795946839762698456835050268734153444913353318804149120373964074313480950420119806182813186265716309565263044862262872232621608321026894305843044965997350472497620191958174948186940643982377431414551530598421041898411490965671483278913675662666109513086039823284715346575131224436360256067708874160127643640807433811298225388324067943661494889635854779866556521940968672135715958705803479886559199145310366260521044114039105452604223285679471769146988871345514753660081871512316336716046425126735864667704406460380049906599254800849566794549696279918699289507754917279903348252298214256036834148779947110410143325884248287284381526321159595343822662380196882974278400992781949359451364223812759439252871598367834058711263251289188654522688912642246822388090058545257643889688336060413880791105681005277919696016303058274442212853430184430372203645682160029801494613404637100699366471851758072339005620706622452315575605296314459063538175716038397596982203827192828142602380442591800672927556792552908351052653085502737421530534351097745277855526576564095817520269526434540275704798093620934907635580192324012531219359435974411166638396381024536542883075902642262031065455025202411948454355642281653955104758522867924807021525179202756275059620134432313696049467738103004326033418075394882411870893671317557434451632343610978654396120247955667395570089476564342092838389466346933911523788654421934236105551242267188067558129435331252096542912671836531975489133825630310689872123423138194924076820150039923990195265777781842846118384046159444155836216382521286164276681779770093786361745457944109581761059451824100479555871545668423657968661872553135056083696894783134793289060999799295392045078022220339839201303378090291285372592684750378632731579109525018901703310826492081763414192415928008709862319091968862265382122564013860370004649109097580333831444155252493296987022624808798227934488523880235044864812221561727257995269701344563871276194505823683318476176905338608754739382904563267386207450456033657597631955900096588313611466221388042180063786194835217961862744293298151933074706163214664131700958392581837293949229991389846425692178394534281881773660948939488455713013997845241291406028417650015650211012679405013846782975064169166376536412781404082439244404778879969303057419390642538837033216439721595238547811189657366017453056259774880959989792647462753010522784032866740867059576099786080600491309097631865708834240889244033437357319451344762365530857639474202296869727847750303015200865876875921386661977565323176049131124945120755916797623789503863357271750673084931505777221664829704659831222505750416803492507144355000303437176097174670748393568141702321784728740121766576403623166610048670337336353958134352086471459715669511961488501405485353836872361084763288356547465711661606138585970472485595959860714726897082120129019397773563634339130737635748128364625827711408803925709897172470130725032554326681370771890421480933193362994411117215603609609041358346755735680972520262775938349622087097354847316492680617960067317612895451363901041428554583458251858237495389394805494097013987165882277860525010378284904236398439277256452381814963749616145605094496672740199857517106425666805947092238773206313479845868425604448782560954065011598696159575226710474572437800030383320087230894923005466417742419156271230262322845906252843918304943483804435746372846457650736889394627746466610665164236873102471263928243539883523017143733790948500695823044982733356083246121768812118977374835608978369751550745965176555977275142730237746459161239289013993808708291625823749086862163614878447564892844294690354979110792871417179712938969584353844319264146070344745633116842157028983337032529088676195888001978049562659403816132685161348926174267450860266904832344527424927557730690834222077225931891233665514309465332202706999489726232870740481924032908972803960330865427685614481046575156680846763928051827139060038990177825406663642108027282796867703389968148945153806315025058948996915154040274489071566885860578435413905680198157162923024971932050099238835517720478055439780367800069520654290760707638292437065941510398588259214791310082106112987300081892303368405648485660955991968886084675931290892495186719423741443565741136669575117344346316019505073464421964513489375054814689266043543239092873554591456919630350706380590863763550988709272249524143976956564326901958328205536282965075607670315672644369229623428882491703297512709343039441311704448060568046447011216126973005001830653709416393596499383136543020082141395482502792658311459266962402260281283961106999203981639756216543233077117790880272211017981626381936038344727837429024727949221129375867375329722772614526585766250743486155690839955174175433246316011301411728455817137837845583880583298400548519550791041930543557210596361397084745249598785532941584335750123323255289078943688779961442661056925568374963216786956916253555805303722993554177462125435941221695208807186211462837052223559832545217874409234961986979469622798506847547736043852432819589386901057817553174720334760490177325873910512702870050011272435768078685426940352107326856061612432320282134710907452439043602150662756276738585628428480589636643815364082956332130267196858241701316366681175566457403358838170966329183483558468238209553117683949045993792739575873629112406987885398081325611978129104207453403821259680251459945034972816361086622715000064055763846441175824561728774998374323269403143438254510844392040581081447615660484135363769940920462854480165225987066445923150627056295972786298187897005733884886743717276717289361354343629499149795437753661923337468400284632844306065509881119378089029327739112009271301786801014731124783448844461489719761786983635275703135374520711372728689332526320425648125340476652983305789005877053938355032649746501381552737095216922504221440915118376535860987451446087491548850403829395178133337655504074346941241744144441338867793018058986508923427755408203925355121593280353400854847172136155992881421121862629317553758397231481435166258874233959243623635160977952681233499949897949109169756312742331000356722092173140147405387229476545317771086210915961684516888888990890789993033932552875753344019972313132502040538136580445963292440476720570358075826759883699328458788130648079036527495698350786259284898732541210793386844131690377273869653182056227945756007276584137813523665957150558582280395477170348062330737246047849944029495951713844048076769238878100014012214633549221079191039146228789436186026028964188303212871420048930157220453380844008131872893690335038062347496619113446924441674645580369271783488504797707238697283676266044276398884932957770978244978973447693904331710784128828401105494122261542122861860870879038476272830401008305941755205288753969662654039435414949332163048213304119119021858532275055951799226206430112351997799782890614547316845072175954747703792372333363774626200838396589552983663585242780999188746238333163257692924900817449111387995414407866982583258364722044081840724046560708609542486979685978598988053612728561773910105157559608081873092369944505673194663473208208574051522556213193502241336642431741901923764102811583745235278197667477299880094223808276530408527458961490805258626663676105821150896852509678018565478306965717397431211008560138329958906678186948999471906357255784341923371259937247933241261471250508320414852231088404471358700089894575696144217360094966088306071595294834437245509890687303947037112240319651818713807631275420013261160107838051066730753750931358121779292092161153303553815098150550065563777738961386076313269808149343119454606738751784508931001628838502814272278182297721411952388176328901706726050285186269150520856230424225938597735193372229352230552078825079265502722340039737134345501556427565324194526574396476562097976752712748162346639418108665171300432118357824818843880968643517667174764807925006074278293946339723681926105288506010216274135967669401786407542000588943551751800313170552795671848995304495297911648934086193089853952600094173025248478044198158172415239570538532562792376890039242471518789166015910359908574483198067480641664469871031805426013572925231742208957485929913439273663747743630728156294810851681803337500692424758309218552666847124641486116880192241492928040205680502721206364294318354167944443693907911233268480147540452770449365113402977177891449376145703660046529262738619543567646715109634152293393962312384829319133348772765201079408694781490360288348374609589005616073314752289629710281311130294332074272708775754520856148054305520823743530573274204470194695680492969497681332204544260059378883050647411957427155324035343657515938222956958509175293850086826648214728114432536759735508777548952940925050368288768358026352963747397713041827286873928049232239517334434140271192480462630351965919261991273338771406070431077309055303951868804696117751320068737783347943161967445886411288871423910520065189301331801041589575454452930157559934678278068409196168513987512513522283168982021911283645369176779118270255899930439346500191224998945571223120390744175011724942128504473126011685698423583966964943331037746871037914920513163764913571502850439703930118046344951936817936182558990846582914250513437580296343404617641479842261977245946923501617633296098219765027393100336873625355843304348102677266714789494928895518471877900472667663885596602355086267037099711870395216664781751914041192859896697259370934914819885499209974851306513377315473208626946752775218016896225450300154673533338124704857334395278485593960453302603050461276598469944464900011803416658355446867020504901370405535610379268665868149602596859715435112567164397683880554990010437864021580562547956050781573439113262103823007217551029205817932179917461503853494969712887310031962598339148427094213599883501145979929829396502311782197719533987280610803604733512155713877218365524375336453284872478570252644829521659181149501806756756344659012833612085505343976326886240831968197156301982478171641674564074408513207294974829458499870488007131888211388360862355934641281903826580149389143085509170833777962244933990108718291955636838481119194327735048811502290743994226042131200504301590442588150993655639100010718578542864309762109282755787009632487227765739951151829465450834197614199444490335548401258132331603986299153114557739590548433708359255366859594806009290745044272656023930050954588815057153605894205061327431831006677243439718266556902737159293531299897954884627028678432387683436858541332107749984195333654380817804554252430609913180775343867304949750246250182785481417101978202156949863918073648406752857945843071981465943885530487621960177427611304379870377125683378546578344545684408817784026929499679750338193620346789514868278212988795618176764632305601259037299317484372210024681268759809817754803980627498488736551977292432724382249877639950479165047589648121775237894138471667054897455750194644284699799751566593262117050576042627476548463630267697037682418144261224730484172021834282306090076330798378904427108641366530864851484795387514366001207730699245301120155625405780153339475457559191090757111377810075609796366472579297923297150971670580296490861798345940880196645327528652325195214012020018618220034173550218569939322096902988642296271531936533822961861602644463603722959832237385547807611866995594838710287625305159846388662151389835252273359689261732041273434160860908883992470696651133227607577765049254383280851185491576525245311631913310247397982559902112271671720225955661153771353990767295211878850301488784507410575051497967265367943275675805469580695075242178853401022587652328442068768375464115060279295394525222786903062541618377208653469184646249505480298932887853033358438239976376446159165781631496944834850420737308936145891381779669568785045014482035009293216022769054393622716814653447763337718430916426202474711082322999213778131058028174328412324281237526596983566800275095367174939917852827920305617083331094265381756213151387065700153636933723356052310687735316673794978057886149968034465385210838519291543242729828335199335262920210796847570293588064663712412094425191014323856834476340233885960862815040439975152060333692553466862712915606175200979256787333595344642769081819401759055131609994154559013606244716556590677235363292805515070707782142587704295959866091080898387210029364965157671489666057672477707332883738183436753827003085569152128361092280854573976159170534502239974156148801115227292492230789229591667045972907308377120440297746049893798437207302006213321348604308833707989228358860342857727497589388381317557379641222032084386822062009982082208329228298099235357823889310379516913597254105818800808314399041784058115890099373328179426445153668077584988837339717224291397505541280342276500911769371547340722174676642997226352655042990899638684467808375863967414163311877330537357138675908386769593911202852342018866934356623182428390903229054020081109033988840794029093530705091071617817899244028447345135512119326074577596566227632854923422511855707923591514206873911665993640615380642420468421299835013333382947658632575329099031354051253791828473787215043956537005920010539062369197233586760997400689984068445998932863246624319528389347330144953935706952830270288715080116903950774174679907643529829379351346803872692848668847469613354472451041014428169862720484900081330504180334412359981110883327790191405207375673893213838769667322331822911276126002191868825287996161190197973097243081357765247779303139491986509644336209725444313607273984338275688594473428469267340398313459563600938770376519283939795917417893074661111784509448302298239416780522937321968418470850567566421840045257203633876330048846086045085690571562000801058535642539842980288258072592895593508669067841426096187847078697791078338950486991872241763482093899168516968173906399039943478399002023651834108875998506835126808493899848979484689301175204773713594009951018016469739061973324963887360994390791492895206073064805673591086239748391932378055111077158431659707161924366230357336035988790461756190189410876750196831183610715326418886508190685194382165767681942208277381937433243625916035079538776592348654414076320711922499128007225681165363968209392817666164751481974258321080770499728015853060815034860282222769342524839701567920698235213360898914008348122243812774380677008157982651395065334112232435394665157534492998123962030024741051771383279849240090384394667064389559756120716117087258821117140784219881738185712432618734350196703007356347750724103872451309169974493251219793913026708557797314983158747176098665945885143453444330838538045145843841445908263987314651195123642836522159949168189198924122676732975550960607179551177983724966768230665206172911753356424240590209662716724446131058000318207586597493898976324574929394823880625279061594336139815735065980791653472429088508103653809333286214179205136177583331413806243514230642276802646499194354200628969965386845016541384063070601093430277649478997069985188220199338531439671873231321277809249901381659415193857168226914976320701840412537704590707753236725746917177736930643781376362641265325807863204916169822690749819864287726092335113244863628467402027971470221908572379611810432099105821837058239133054260077970293300940019220924474613325522395765791960441783611147487401393150469052699053589034402214639177095201224507371729241989145590922627067431412424287558981223496724773636146001740699380714911492137838827134254079548830433589728546087164722671053822658180072210173687491698201380004468430087982250322669857814075465986415709407363625627254840716106354236447833292632520956318251034705677868887258074284947615394458835431091681116689781073059970960900859507721854064185859169340328557868830195532104907935577898159752920839288549469068738807493047204653208380074347297828849615772805493492990066373001872995492244763741494610454490785881579316159889253302810569887970107862854653382282771777437131013566452614654539843173492319494931390683676765919959410648135865288898130302775491996222610248649451123271582296345702160270038978208981597433440294228052932615974047350979624511257309316627806940366343238019061451545420224256697930483144956866373885149524678082017249673961405154044028992274496722360279082795577932787854475375330384706853788883150475780263184452587271479681125089850357994676062532314580959282538457675055757877254565888527530351591267728502833568627078172342812014131472749239794555874352825678909488669269361029504018004920303290658026485258958187545277533478740976065428821472515985328031708030452167477989683147026591235731501880219239911289158800065734975047890207253385342929267483652133045442711774056202000160901438154048682097032705528368096889232573164849685341269233590596017542521673763162597318677873528900061838101704642600832007374376394001054489685621256194802745161413341253705002479675563502171716536257913533493511556999683661764091488059179839186583368323054197119732950734677489599911366539100618274712551505722743124203028906011831458814486626908913263882287476527060813707070891983843471404243272019610556059332405028482514681597067663672784887274904122960571220967705373370184284374450248395644134174197250364723765061780195200943452654584744053860194010373385094930027798360464302572103211396981971431753245250046585373600816427368399552651519932954473718415475464289602999901012464258493005585404415276300647254573386764414356860626312185938669439952732310327848284640887500268972537382161844468209921955980063232642127348987271313364053266919591836110303073840475872878526166364669956386763281216381893582710939298039171679665165218188632065999728327577882413569665817763722064264867518863103968934857618204862488144703703512519015137192609749523709642755450759439267140690856421259594986468778874011527859907187144431664218623688679430167431479181346375501068398980997887203456388795670758230730761983945161092787088145528917186971694269956033399279705391512987357162653705999299368608204513610221418762693927198967336197821922342135504828606464160220094031049348070737184894528077231796485631813483184338247854849580249689735123620516245790945227510911230063559350107475891584284181232168361864400948277703523860275122657056625893281581839796823525653453675983096553040350835989110634077359287408920597989189712597455975262347057593478724992882399552782877812863608985818037355711857475230821928473511142568325337666639154575311865981349576477700819479539309808103646050870857825906965673982127864807684255853158150781561520761969149028015665867396232578488615503249853849502013105772805356015436855975375294353137564437329776720398163086061461553306489967950633540616871530701850676242075047083434483103487024156561544589830088073298204922657396393065050130052911891803816850385108931431587283608898923287414874283112874988744367619436315756443554150998530979173712978759922097608508522077663976223864801939479274556944869054162649274516731226865246296704802151320056176764265525215725389387118847144450265419766707788957974943119596008279185313006032635392572074117287948066670782974297660151118872825778769967341107155811793722258346577776780158716884184804576615028377738814348348779164403767496232791539045198190525310777507737335259651258023307601546727049807913371243600152073496879402110320973691834252367245249761741908750776298967180917119524305992471413189929790803243539610138573493561738720314265916215043665155684173826482418950846589282939590211105216461899315142451461481536697846889897765672927507489519999380381350893942269964369937933138118747371709611962461943521948499243095007604675006219961908270710835198002567056095738285536840022842926935870077972663509662660012917365585023851184195800573505770616445967810143560916913384221939442146477304452375524273380991673785073623222853825003789574380209669208854287353353940342597315053321196770326938831205142353904824952056735146646496074523992104421000902459461741721407142161603242815864043780604413192166491846199717740632322893820730435827965905358157116426587926411143457727877226544493880393460906352957276174470898855299170529866821785458275156781669577193782493333301922607322172305078257795061309029830514096487152942922036577909268820088467542941095581365188622200359654356426200118461246973032907391410164310966607821901654475969092038636467899862600055795885176232240108856136238407715150277933142975091965368582441721389087125626427162950153528556304953783170495098854623015592052119479029083087497246775158430020361213210322049744687245254801674364693667378184593953266678297008878754743850358757190406126369153165230300872438997590305463482656316277657495318987073653218158883361855982661371011135340263307775202767082835518618532991399425430211791333589009658943578489102961137044061437944818825783385951297032982793373983213507992486936100339287827511897765326171498800366790904392677309233639134278923477055986787709968790328887251890140110135493501331302428388110670067817376197988568648624139558673778203059210860400178690498100115848489117496534282634014516261572249058011881733122311560193821408382938371620304289187469684467502955057952273379858847916916077297927209378420673161074263863999373572631251764272819799879628457283925964661758223641874837732346235794441274667126202818729883526583262982872215162508048354262035241295574554101169608763919174323304511409980038859318720045195800068776304387375847959382567195608820111320041232964221582480537894146922249397495536652486446464234220849039982311752209440162158164420612438650134779060510507802838462302698946748641233390869896665412094743006705749522583661695822410966704963732114625059986861751495494360892725513618688798852710521605883836145571363968450879324437701387112455756122597753974511766183047389282326609428266946986883009887516322220668205676649378383694012291633309023590299287248076876628760600050372302016497465287747799950307407214392595956501969469848850298330455269104119435547016946786581348507388057639774911648461986845974334900234777515224202415651578822984003159662430290051048509934786122862822058317496522899986569590456975689366174786767117203790619622563847478791864842530016131883167015652428012895888564257024204425190724324356493133927239405536036231747354297573952645201468830794578883844502280027657856597196590792843757414860849889831970633530817975704380545655130239773604772463997614704565121487431990549084664942374406922254461254218386851173751176391338504725593097034996901743724289263939247150902338655417268418131915781173241726957017730162901024848019745602658667950495718834564254301870180534402453732623478081551467462025381654414560964608184002072597438962548718555888841906759658697657391702326688817983525995716986902330583009148803687932758174204799002780251435861878534021022676444327514710447110658463069277480049745119907443165946359301583994110198601490070435156687139190968724122202104986806351577105197411027740740638155344041265978792616887734538312546576204697830871734854604435347491612279121971536134273046888575786414555802675897541429896976208255313051373581344169821245956549633427020221965263939617180187974004569472446662650731970394466692708752712515893646583763293755406708405648577492965969630343832958478488510497469082426038507641274605471888244628723081933413380688376583934036983609098217439598047944161969169570815267770258842659770311960390621261490530295143597221152400732602318696851787097327423717085891665682545362176398673208321889671535494280362433399333610616758884236699875489756019783307577947844345928427413241493570209464569963146755342603819272485545228584497896499521399525017696803947386112656648377505360596098326071238580144222012843696664500338451661110900836510217911809449164732866715463206436110450595517880103462327818138836296826036850581676148004826479854253208935504416018761388819814976970195130588402213834287361507823522017076506036717646303981780441588035198659642071985100405647397214474546524319925035288014230060798181838246118202762628810543708642065710153953948286255001924282348917561686342830175113823233563455391852669702715428252380958718979047337679455060870805129973320061364390590747382717186323376888899313174772937044977061586285594097914698897297220760672389121411527874861375460793149145850618171080816119991723955929794923607627317460620787250837296860770228057878099813671674537260725317499340168840093843053916240172383470123594231083187220173627889872301162392610921602786452316216713845673397417049915414212836891023287653559559165461123198914876144125581243786961712547041298383723394418747926716907620779981997716035428533383724684627032309574684602540623467870537690516749161374826510064366192159507728054306744857533432429219253429782765092627053446079197692322944584867996557328132955870670720677714891340888556093998072641834013124485744397766924301063515844359492134316514215800355603018752942924434356000538672915192895447586934042333566173131250110478083655989709090711919273539264429815053516983929460662370579059028804452918941103733330586425208625746101806654055591121492120360442627332008492677913571258162664097036576330251346880199563563184080529574676777160211600767869594393105340415349640411284377246221215177772713460009786940154770631146576035544751725739431164085670469553923975129322615435519673429290441258404097397492439411607916125476663150094091747437778591283850921818082138841649463771650282932686787649466069379288909961900936896376112994255841290659807007227188723529667109886446351678906087373043524335962101703993759194658262959426541372143074350202902678881972900858747701792996931463134985437808487801275203739804993016330239677490469006615675419754175749035331131650007346739837297372804986188934147252757057366577444525000686402098816375113230744544759408618119476424221899249675076933349283070420776141313279827937098234573901350697120295197278077490529241098155420504078822735912260038195797733110426575452282364819635118671253881613731794461528084380440479688618725312298024364746515356481892994929851344013209414273876604328527532836931228766390011297118398200056659466176522198536469452772523437474807824549100374540284025347385775287895535971928010895105195026440875052049414560744461773296559685490334153969777151511393903187711711971027192399675829524575055257706617772969514150944128528739190744969388585913130999487869610838365284369434833836580229825810810699703562747854175528384420339106502962112565800358035850715831245595440218367307686171877592863572299797449334073085774159198671441500778104554624652302630857955023234209535065087509402015651042309916691228842498706831214040078287142933040197104344512308950242228168605044385056999939079652120326161946546084754063436476903819191451884132086172003619116569572175884811589874822194740614667370414021384013277606901823149008624211445024892093069506140116067133866382112546425835959614294152400369401840587987386241486896745541381287298575341971881291336803189043198332183161517092328983885155987629612649606689134622703013725123678956555496884572356054375679642971548292368896807461790583689122421284284337630699403685777344420941604662839365079964844431426120699134950577295999262872490490235328564302467033904353158796089724098427192928976800363339130256785809678834540351463582623291437897025934630684234365563749766439053969872920922042081205880638608156529826262408646308917868316146433400065990726217398559012894227510564163442530244654129892568630821719251497197662918002812577750660656940690777738195798024690718251785187089662780350439051882164553193066689235157795871051861016678730252505254057953135511074210740803342820836313034374110368658507304975924534608023652259938498303111416885412159632918652354773605071692395139293535831215626078544087129835035804060150058272423504673546433872651256861444537504046025590184178934748089640629940032222221764590146785587118030121458533063649852328821195604143810383210689306056691396106748009242485397859251447456051605339658645114224516333566206711562976008587933169626185541448881125528317680304330903425781102474385593680376429806177448116390599365181975375523854719701055406558058145013580967420057000376107564649540464430274909701200715269936086414524798778643985603027693900534953611805778887867053627027346485941909565593067967073628701623016173476463574859886298565186782864006579144852081155547378512624475662796964533336987263499247423739918626495550753973535201154345455247867093761021856108351611522957445395516906945293070962757503504907915268045480237983657588819480688745366048631375028524246330122114037917079912071379610127469055781164468339325247884600332343344000611240345928331190912186576579296271047041591529536472921280839831234558997996700049037539813356691502363280223793102238717395295121386725066774935347653509748012791173848630192802034329176828455969531182864366874069597248278647052494211286379980320423496147857963296690461359173775109660314041926534520748832987102123329619609204170464154519373080897560534258965591840149536858977409858674895910170460311937328241198692276602284939423366106721071874753342490357885706370385216879577483067946719330694774246329084060328600862840411692265647010257338654154394292443917449692206963999231256738450820690598625644014147922704658834755082459445705546064723382151678132098427103903433428521345998991478740392595893921802097498553287961911360399042696005094515303789044095884096557516482559437739138181734378807935248837227747434602541041524212116544437108648342090309106623922199948641473458261356755779695996826212272854141563886394119194758293461195519984894813917221271671255706537641232480562088839378535150290706329986665893773952508584204318916855409079317807799929318465029369626154571939673906125763525745499727826193791295145180898480294043293369155863611941155508080647042371180655312266247977343715918393970989860568917962341512757349694801274183599942569121489021579266243170999447473723588059248961297898105223304968907936478993784415547460155354696623459729454917794654581113583403700831854867319279759967006304137499794864610815358023071071652759203077161128223888627921488752359748664581388865085215599742318389706040115222976608561198702456885228555514292967559520294437848044563149148700319404431007430855217522537253035734748327955111514204215072065198927404775579317498909215737912219953136695388304592101834248698123755005511603921578589534337744261625553033848067997914164524692465031675301523888458146574124519286805743522595588179004463022666092715816524599474243613517658178810436365670138743061342342271947055780538996950162390901235915215355157326453756030331860998314385344370544465379533759356291725624701598468165200982719799033036449436128352881418083263036795835938725505498815574880538495958782363523278354938373897249562232659298665857167635200893768622560942334662024094851501839788409563308438521360504368888473573041992328686319169803031054141630653997684151886757830469797661477495167307094216559964143018147760320148724789160929345284155639561560039683714734529291173444955938577464978795854117431237526407085489165224488461998529439056706926595302881946169643252069229013148880012169160773480303361333288118272295699244626265586079028565719141512317344353461926222957490084848817829993632726787732382934694770482228479821981090030110442431719040008005538574784563725832479882414942863580396290994154906436078230319527901566825256983783586567687046774521157162166637590345489517938584719931963196268514489317648760348727792057263103049417959665762188725027055008302205994691103807028645945946119784357428362956420050401549708796768352264607908649488280828324183944701658926246862907583554660433108744529095346657098878504311990702957131566896625002192356214069093289283724293080628021075180680190015054858530436614963026455859557579357810482856126999021434773261328618639173988683511291763173510214418730159133204402263754130425136870740000186209214914507902362941332453344494043578810245894493250563269424666926929363971482292702408800130656863139346221336682222403744822618145383288888018727130038822631676723844229389568266906039922212365441593894739212033224653497129944424875021571092527447097391035973665457662519688437691801686696014630567426791309662610087186621549049767166098750184414067135188884700193662224446810125599589397671010245404125491594760512068538057934617097879933696065760304278425394420512097530220732049424392252577020900147646868294703895592071106936892118220424953110188510909368004036884880079253669485328207340333285610421620087623204276639518570688308778023772857063935586224381884557527384152322165901888083940338724665753984256994354793962881164551828879672814348923452442039162805650329274255590501242219908310549453801007578103861124214808005427574365115556492324540868636203376767260900902917993039081198366809741204050078517798997764436662699225319260093297733548874535333381750164368645425372830016790679117513313199537243564400262034604747206609995613401275298766848336597595923894861076522298371632961840279940619019715344548330222594363247717143595611913947765570364624985148318345902932832140388803176890998512804030732702766558683146554275676841886891491912207293650472966669573384257202855534631893336917267459991591676246711360268349905260350340947307795110613898131846445740331834379074686619843623624865351329619313738221913551874620777175450901611357202090554086632382494151583040212752617219331343020902098613422943802702804320186733279655469915501267746297924076837553444923459681110048240737931053884311340874886956988234910358676884927360723694785229991132586487737325119375229925777047432361502199461882682247705288535310947619849903363274174650563202249964442711719414369331132606657969743482662329872600394475968826041120736861685230864630709232067137547945173433389867308412694164866380684811051447552465282003734856522153729143863413668042476566995417932148312765460220023641630126568330316710146162423046814999239029412633909949887990164602623277266435895602689306126560899490838603083179260776377817904986366875177573467935708935549057707143111660614476017377625185774088133175761234729730576173809626068070918135272971830575502516452346338512018700345933567421828225170631169567780067189317003035777990588031458979489650019572346608892939763316792638514500844358984664122334066484299446625713910801216476745286028364472961821856621615796370078867033423341026172048796575037170930036803913390441675412886321880829288913521949151774410916077280436555314262770052608803478004743556165655653025983522715450359141533966562352181429870263716279828468331789466279015914503592290122329998234613707574139309125498193996757977359655905062415099131284252847694450817288649997270900618859236229039808271192558697988586150345598016919211405790017274575375904601013698964075006221979117576577510146119562753688749548352263169967826505775185812907700158422754985037831259961639745108826289603585388752071306129728706542409896142594482752402176804644137875274519963992687640624753652356783129174640175106003379376223664780893190317352695367090624923532447055258956376355456816282393665376618031364295159297885675899803272323193295782248395363803541805498550425038319844967109297410227972765165147381207774758813144467576997596024776953073714210653322968210372079816364324020418973300363075782921014219114835194667043230278341524538835769375933846683866212092152329679289188567105437013291362791128616093786541945621876711481449843672160931079364466083635269622732355744148136524654710002745165184805839183279100492161958537295210499386829580580707857914142883354195854041121980852441998958078940210364512784023416909189647916736959185608067652653286273147022382851867749752729121995173994288733973273481085495063971057313676899824378255134788720335907493029167340124154862311596896616577266902413681719328216113303333259986948344194808604508926127731028112112401542457300662062316870253915823004212176023116431037970788856957194236223810143340065779291634510868984375013339450665591933459314405509228499466480666008282269514223301613349602093215603250901439374436621114656149481219241979042255210449386386096118077713027667093652744755323400918905157534102060430941915091940509299488471050803447697926919790566555976306730462558015341986999307811325323641198508665380906848037584092069993065100366692955860902134107690935162072085817055374818913386355640635119636343504978520178578930502393962500675492175000383275478581850493466156313488552476047442891518126854010726185213968280994338805062129970964541545610073082265754312237888063738297001172661202706913442299104520097427577948216808841088216490794634645114910639859732450089894905544842468710950340343160217240316630051192886197519233079631969694958940737115738655756445577706757748266254047002284955804963447953072081344454492073548999005009771576059847387919572830911747971590884493789755651307459589097046318032810529351956535294938534728332307767699302634439540420826506527054437778292439004593940089019463126968465317656799295455511573647560134010938419058548212695038394601238650606536997369623994804664575436025559065767673814429699131829429798361972201936966139074269356287059685864937782069482095953034808976140102094649264099152135042858408395174397973214536788205146957581961752972642592961993104091170516601588521976991526175149728735632985565107387118279164543464801077750471497331599138430630717303149876841965315835764816658509556439852330637601496823560699942196550674593891689179188652779582265144417912707644822338527144441289249933046233102908779177839657227528408399246647893812952924202565731134835472525481332287061599318512289560522461474191874139479567344576470245404966297498576066527665844512077579988861801244817184269713020835312302796777383597959463896817115738012687173846138974854249991065224907195332223655495869563877389727977495650286304657646351099422363658975676143237431075026663987322683713832180695617234268631178151455225573074117424004164886149423084386345462639048414461790129587932522257787622986218280177919393939827733700535950983491429790047901398657542568354120954119218906193193954851720153457740535866269879652500098603591288740519629251504141108599447046419260348599295531906699844000071720612397378381646536471152132693608767398287066881680539478645871566021787824112746555607230381461340673910316329762681428158390979403754243777068439033778788838179975079897809918899727975536965858275057565939272191478720372412992121878399660974915885254746005277228675077532222875570749676288312067593840620815771675734741830811752827758898013159159615139857050703285574786660184399558862739687463781913625123646232535824153002929036308691874284217387354515697409320114613042615771411495172224832748037237464203364928614427165736188289324070788133892407995186060354767466290613944975973722272808517096776004107406912421104640905058306843176737281324585408354179857515085333661331583281986049152631518018571663760902704300497202933253227539831930234835371196769139118308856154028307586441840685451137942728714460876263963386510808635966848209177894909884227034044808334675377626965543644182059340443114446377774501658001170875798334787070139770045870908034193391471486494951576573640216495637544077164234400309528657621441146956731749898666671996506320184446129993639838287816211963992579823100921204919798579754423033730908134027160084297606212909468179013973605028663941275729745607953329877582333219818796386979642640056168637991759757760521024785629715338730634048490546555730721147703415473458520896584108282470960622611525533219708335147634674914165913403226157829109474644309166017959654613275759159320514722396914277803530749017542212460374728064379805125581898386687717219279092259966402600182968177334897623946337222387519887256914379151204989816818074494751938110636399294108215858885383180760868591850619365319425793017489706456194238488473400617063030545606082695613959041590502685260240007157180482026748368737837158761404831839433887348525734921163501188301116982612752860421945555539645542629399065923743884292902904157875738590303881024096316681398116127277542772390019081560952738599528883729436299139262537905130426218204044855722434433371790578995661991916728181898076685608485012474452005474568155131473374962380207438595644589110811258446258029366967378787378916456303464341484827743040768666505311507783925057237816093583642923849259155651094856148874101055095649040353398446660446737021285262673654074059686981680770119145412158713771657554036508468171277835667998730335382148176711841924125048259143626149243257180404098547122003578520845172177790592120715278458980294881356677071253322096030755616388589374902436492081614846428161960468896513186806467841218167832505766221654618210144243444712472307004997501838780504067924040540820028551390524566097756821325742884714361239821133934326749984468449704995916216681812322305804724522761547505063181355743636722317859171275946544909859290679104365361670421244572504970145892813919888289282370808081577367152102845346186144255366256255530328591410485911715253571736059121278419486115236379935963491525882932633846594053165514593411238852456492411604942844393891604193875823669976413860330809752707293771074931117619314144054971853548882824137225689110602149437009193734040864081136216275816208563431045824354273115829492211543087500722230755999185771809068648773454134765042755597039777766202444599442092675042039465796026090318062884715274927779319847453269753426944944168836951900220531633797760483109543539945732035924765640277466478744697100363644494321691272052914136943053538800923247791754081899710738955605453127137639260804467872641435177827746468168945779767382783577087959183883412589574747347716751133491743385050692143127222363391143776143792151088563943471734315490439773305994491084584783762555852062962266008482667037901702290034138396452497777951748766281135718917561309617261426848039711098940381122464564012775060615571429677592671489871234914638182832700007405543301386900488599559441727188074610462378538580309374685893096076458193521316890178187553221417457937370414531205993536780128777937066505165143936748350148131360092927481876442491911578225639142455229884339157435680411053258397070571710914523876918610332450705975550156430494074879023546254112916908406156040917014588538172384812364903829348777503120360491273128769409929727362434620287498190648497164543744194125471340145983061700890886587356529196564501450792100125078891561691442517916974353689641752792793505841438448593199336014342330258110909416306674244004696277872300474371150599566544548480455281477761301912361528131699920038232191844118329692252581397188425820791009512664482861058854071732807382673584987797327714417065594129357531455503032548427929948395331901119537508247839110288510569949382652517231886322369449866399727582433411379846075897293354707054675425096004737845463653068386327953422780895607452509186928049725105596612948753351181416764607898412195419533517325475760488729461405968448516044222863677941411392466016300358200742048818001330326352484034127366637050950039977688006792659094650583538966503034987208563020671219297352569120403696105169201316765171781734426558241354012999014936939595977284435733646268220057860957539108613926828402833021180541162187279830910678460857330411563616540266549100623527466504165526421074169935343778244127695468128992301915536821058663023592304119789008511173775840089169355631280073206768768424318951353017979196819331308026001989720662676339310090471092640578649521096380382312768949700867075094340703593132715322309908676585481330413784255538621797674772416766602898689097016819691879500529410552933047625786539258742897901137323310507129818791027687695300463981066538422697828925977982509110464295974348655649887006969248089482839791193789912442846471063153836400827348360039628229389772704266651374980494104731755451747626538373910598407235829847044076690006220525905478382577963915522396320572639487162557558444842909673308120246813031292706881780309449727206244637679706397867864255816398261191917009255554185134768830038267965311850527779197649478651094901693258184233960722722364625911222102062183208566945850991080353703200026422011005744160641130495365501409159060028272419440205007498036608126102311976131158552625636129839026424662180125422417069971788047212061260580131928648159690406520514116973160845469680573025163757118793744322227599818552288326682863068863759286001741933471676243534573816381253447235460587933108960083720509104230518517994490839769579639110715508411095323613812630461781775123058727321871584567317407962354086697754486443704910474756157140605443220994303881467630448539847793796757166767540251747766140386107478751914331077798718116164791918749961162127842473732573513354607056870139075729519937698560201645204184514542600487693539085275562359241692100519326475413947986394154007925770035166118368959739055212295775472315890274112459327532483083879717966241601622552711987577321242221755530528108105857396222741777670761267704041658035191299719053009544456165157197818800599370518247449331904503230788566527079580344277671435018158172264050328762491862196577297223929705529682854057187207237215901956586695789783879984035025281964849995156210633691296794480985440098447764731666475186855303078798961870825415401881887458064986797130746872574761850548424299179556669465000914656649175637303711452556699211317848570985339170541651832069957276399128810985901428280051609676944405876863235114256821931036371382918745809385879655444358630331018174806644980527398600358127649566248796459320067348792515340424628679296602861602548674286710265831496376374667645924281915829539918873805915595533004749030612415676239964473674626281013043956366563732370783531514003692397508943914604570831588831884836103424853171983859622469339462788670164660502841422913530930828324966863521488545627076252569842642338558549821933491097200480499341360514469616770987369825662200664798169465279803488292998491255869513006046343828823221970187258072973295458533549410904250485449734569147173731307931017672236271714157257836037970265193024085280274241580057197068955979367696337464843864898524289385156158769971714422689895303416363566316659809538163057792124679536938385198343325276229097728876612750274829065217529400293366104537726834151047590883687145648177384155347960882560652213983432583689463342207697792778165299513151756254793495828120968837096800666195843753648346785329612761427236434277835157312921824620068014640411195819585710080606569676538499172687585292196849501057240235593914291281186720285472629792952931513164989062943930666385245319037264979204184889695896283048012362980494564991951645327893727518308985430346436550945113860507874286704593856599133801676384169651686507055178756143292756746984646397840331311929417080529413004194037245965995582045797143490936795746102888245654896037760353367703632938029070152547938976193269198798297103564416424537729122376772858486147173331462712133850493557686095622977476335532483432086239298901468167163874803470623097477664949828084872972597346682761855271414880047282321418794925007062265236624586773597576898204967095617916886375789560990347203316891026908176796424197622468516073285734394133167988246261752727972707442472589147448362117438377977665617324049434526543903483128116974255855378355854847962942156388356646139407250917564680299264741670924585570665461410858883288317692313670239444102493494904748602275860521228228845844768059049163184534410246916511316510891861468422872155845140937146401867301177273416584824570813885041363605964656896940530849767361549944617084214767514876008516165173430070426312355310100869677516812949902979194876269854498350836502405207435913006498502534162793633417349408142220658223044709271928552681180765418837366569313446584560048039287550980292664005201751413137055089803364717789072254291636752409165329569206556223566033544656613980018384995324744413702381299617656304234128853054795058892188444718542190899233306024258915109129567645695001948611596597069548738140119451159654172370823304866553012791032499553917127623466337516712604460703433360180595872401262983435266097220490217563475174020534226705691158277992400377609109446470800409665384247975615447866801286672675194131195868922790273169776235955562830000761857925583493176982176196209155715466034920638001818372483219162374619151091469520450063436862084974912130429577772946608931239099922483530174257274960998186155896840638666244051206713204354126158603000203653780271422445861420995248142481704294832623698305161522225439393758502775078753793844805948592880898204337198128928127948951645534653412280957189093074132690622993930265530179973031521760932249848686644552906520439838067135179811643053975010640085563722820721966326888661935427260372803989596542127437040905623958414845954921254724681867677898770904722149656162009816191972637497008650408860110269083303531631582259912781259342055963671628134018854792514944476998794972912366465854600894892549927938103498570151471489031756874172317442685811498658798154893816362130272160513117711430860160717082235850334847924177412259653071916578002768833781046138237222056606697384954947024646946033187737534470793977898780646081646453900040122285121580123207443460815237552633135565236768555171986242805357375818515209906401379490496937888542273176455080459538855341713176855142548386753998103186412824615458676943366842866318878127562381127529193393443055517672333659284156454528575070214808585577309339643772942482865295223066834606276226667430136633891788052162012269699560853501073945290120967911743658128396542012511939776232020825720999073923599785457603177733345524688204757060726111203264646650654047678949984255621853348596778451536050875327779272407822037906639820136878029914199401499048388963675740037811203949635782681072824102696822003211782208426219673186942393340009843191821090422883513653654401806346428058305354472289737445941646125888994707749892140827849469450012645494926986342111115894010384687071742519254230466178520164357480311963890307904071667759724540378312820841332927279235836750870732157962329663681489664116882214140129415620355935278619450773199639505856778104128441617270784543029072375563075091446868452613577639670893799638174092365400683455837343613925052986142039562124857624993156068718074883646310887679853538504883335377385663859233092409251725533728496327132402769541136492915521646591394123555931398315022858200145140663468950841697190532710917124511938358667902999612408669049116329861994838266635578528404836530516235828070788310156819989230027505803245564209012054786452560964971791381579237432744349936829738932067186712485254946728887030434098809138439209226623056463959075981079871688106566059716506769060318959382544388877723616603242187759081236420792503288066882130780177024368420482737037022687464977932122934358541183328351711369450999130234101735969618487661477484912626512962478648337680027878250113115640932422558843840233948980752614450856948026577285087282260585856470509262302657848072172116013310625957339585065736327491047570626921230060379077507817175221834166981207710058434299998946242485201930290471236762851437790962092309327298176096551812781725838682906541490262581891091541561822024825126629376044278044936680657381138316013957371054171134466234338020398416900226645980476507102207367211862734330125326099056841115669620738670042242550109783535970150263490855817073451825870836083813126938093154987528824396895792475842367121471347685948331576827161316547118435233016682110819245231706384060781205191365464211687207117613517176691971114786163946746033941238638745081450050887437869836346214951314936163223039203161118425572470803533086071407706610497537155759380443451677254569134064842973824046691290891650631818177765246356635181733339072352657812837554291727273513238901211761636863793688866276740667442602530770788345340722284907423271878249194196268647697618498966886682564124461984751590106098623579103810994260942841833773570315082878717765875882270476690308217985617280076293479770381663978437459364380418881607180299980743513415774289549130762179544779542912930644400390419421969609903232058544853580189265898004702726477666690788025041311410909109640999263196975545738530818566446168720579444651049174281814684363617724528071396305106295114174859160133031934897818597779757372228030235706824956757114107531281014933455195785747267177519441840667044403982868486117906282261445423090412181733516742170524664095574699949620303398892817012623092748995474370464629210803433654281716188785347807900611507497055640929638637847930391711831816836131259792780925496022751590060734421168666519838118592887306866938777368526444985563196563870381216766303523936306843070687078638998533210451729174125723469910975677620844136762829667589647267248686616756362977949783711152121201989446463931538856802938938661391815599077911908417723499313759943738363025176893834581118421825461127891162152155560743532400655182241266026724259765848206580392509176972236188543695916806750523740517588921978945052085197994942112740777240697575024935756846255012130660706585284440538958384470352127203681044293837364660136906068733046309553974936848783925765339886577468850457233688489057091426311235855928525242172948791290437251403299455956302004551268519611194970807618388546114576257446927717217994968975449848946697177523236575877104230526427656575762873028290746299866173011322409550066927367565028977439784672766194804972526359505148285689173670701652780695385887279124403633376907677715162028748459300900048788376056587996472210058080923170163674612743656688815294444098492389717424596490220456625352660604793048146340738882253655156155055298844413295492249288099946098399564707235959335273059476981546744204343990769591828864650991223218110295747001205616257480299291561080785672645205294213767851088609170761685596072464040778772371860438158883764823093413782197629511455700430681809182654795225772301140261944750230867622489011196674407751418756897978039856969983642486521008895703388636928736505988970631684020980996872322601768473987965439962367943157678808041397448915657825737347575021685577987210348129967714713845457293049525634891700700886483414931959312543037976038266249771837530409265015098758652423816290638426794515757779877623291952886165507918868356205599487753255250788656494578320804148008809380214897904263893681517138953853768791078305074121565708099775750382228206373597888974300939454959155212109920542534923422691947196870416076257366806501900530490534010402825419263715149279249770338467218172041774987293343526938452214024878593485491799932981409140735663124986561515307402435673715897588484309623827477146783198689894692768832619689843409512501320810031265269376477141784024234238645110414239867640159743151334147871144801954845805826601921370963223701101799761638493649084731913931863202449696358849592006874447698983922493028680255685447498537151114123953699988441444728077853955216139294572848254709571021043111668827212825262597077506216277347658478978403779556354164371362163241448180811177771889514285319581325236420462714326744239854689693660199410535965812828551633940588355380075981461937679334681128743194887057989086322927484519956667873985572196371667085693863351857495007445927640479853626089310781655566162453882680306417844073661325984823955928707479595204317052967738316945926650560077993231431888827270589201065508686226748935174646449202349900995986284828265461915958522622464192670033234219051874957990793410813753460412686896008853980326412056255850280420293432476247077087941510273029130415931148742642263924092402280849121848085509641795515273894954234423774671045117260457488772205816359389765076017770095449431185147634966584138969797137022859884838471461679961234598366427624955874878872623912659780431985623858137249041643301715036931884905161762992933394967189617604546224159751733831653496043954736910823780230162332121041540954407985704807140371648229213803392893007784086732992394657271317079310316581854837389144979844886055944483859153211113128665726220538930169919454957172070172439801193077581659515319510843915602015504367323636562123029200534607937679270008788761036731470071373115164462159278180035497129483233184447192221052351712138279969637279853284787181820562813098409380309926986920434617620296121761520809811518695149542703341073384268454607025150739347364901964328472635540188297980916697170130100645159124440392301944363439115193471818777946641051991707844391346227672394864007503333248394639749846359989570431501522052736856670168278931289165732726398818298992136108679944210269140346607017040761176748237111957618937518867545389719340534916964764219056688629984204696664123584667968574772796728597037435677306446334534840788950331769148963882561980254403500482566955745761126697089213027861653012932123678161352055710633532701950621632849449497903057810324415732579183740874727946516621293345728816267408459454826480835195816434306015551362193329732221436304885224470419776626389463820835281676514199154721856121043512938517479310037248762785704139250822960623593307389483947499665538837687032912704729765937271222152424960226806997592310387206701916244638092070662384689587500560809664650716296631040985419770051000515117858261383423178731244621240273678324464851875084465117824414274798661371538553443493814583648023203268871789087390380303591191359129144904437668843255306441034186316635854744167001824843589626160305427106404745142382893027025530513927651255836520857866171656560445960159719590787449835527203262317311832295342338074772923334384773725596466764839856611130311278151232723713698689655571872942524235065108422779376049684584194233772465681387792556926259791201238947923822119468053774592736326308880404075510623853188652144737725985285153281738644185228228756265334759619356531343183681552941085380116435545466115321746476292387382852448504536611660932453561375678883747332075683041229867907860128368515924718409520219452770917549334978031689182966679481103374593502610922245317102214231102051678820629541417713951708010397656340373218844509305445050632739604520888117018605223275438288965974041545538834378858612636785891101019889872844755473273023016888664606251270673339904515079888130354589443147237510388753957872017396642482579361319482592975109133603331136348133320020445072793223082877848665955214319945960506577975299989846763717057389680113951446379220844164940969504675439229831810408260281433483244713866065795160806455124177887582216410374765605878600530373515739027210612845806228055621072804214030680280220806488910282264757420670385439518643129323690949462829957122973299350060552868043682338073940555093926939335538395379269582897979226688424186739396748292546328061039783206895085008563124198919499408458390556138503525556557349608671740131884060014324222143880690907897805024275838023573950587125531657850257486385536896374451830165230970216578195082998256027256065421681044362832341202180701606731358677610190017884120537270389682915204059934905500516765702995948560266389149087289826075200332460288027886178460099115033870450139815718633317273028336508573539461100572091301442337605063847271803783489008642976719292988228594350867732534892115254653779024880172425773579303958501674124212472464947683820356400790270282501751373343330316330440517833513044053335580262755998996851405422652235055481132110555767729859601740165762981754940480011397024625805538272834443821425886759914541945195710234645037796010124262547485403419432835578417024998431659761134630048744399408863792678305296903319369741011186280378086811268410396281411691656541114172778316685437938364326729948018952598507469346591538018779095441668744173113451562779936560379390671146369488362551075776308728319778033494715675731244863589784242400088106590446303316997258119476625835238205621529583764005326905838636168660226501916190589827147933017605145640957435741252342923117148723673074759277723920366301397008403712321286369948551294852103985860555964671995137081321110670179666715918192262252323590548823112692919946397303550188436215653317665082345412416403147977644049009658208807745488956348508733058275772188234867672230784802694655728865359312291881548717202711837508365733585286273189164537827025259443222112519132447541498945531878121468208889950300834906937581001947852915875592362874135698216207410932946682543896587826841766831520441524944068062396702687752488333794058243692724451976873370359151339572520861853435923670525691462119548635293383919144522892771826956028872420711319692126623742650577407479966617577156859554072802273201880349200811745203637122210928024544683129583489055023043494577370612077187937524625144976804139904419293896482695318333950472443692474308690851937316236962578185063342413196223209159664601740061316735164039758114034925654530326757488049081265906101115730854366717990459650473265566859494421552309103685537775628612903959460882608689435032930322594226868131011710215449944520869453648362227837465143630540440062691511645433133494843794804455411362685303987386471245412171357957030611045383191037316926682579690931687308269059507091290092906769755893440184788831328415568817045896889916119251533215973881736959248542871042244405399722219352058174885614959224386721977018962552732761188490114027683248251442190240098059393979234822645057310198099434015575084671499764758526377343848072342406842061450744699641807748407956887952834469561686673040110859111216980356049272325894090449835140091466859489865121007240996311467147551200814187532747127129803151346430123282801876489556766106320229522509753762572674522074901148366663126580680997182007183187681547929175327724447696320737235828563547344121898361306410128744289276398329750413084541710322908671047260864479897512934495822627869220881722418560515013829595467021016331409806826146055942088247574100208188880589754953235780830806014245256465120823541217298374927096797128313181573625197353436495986247323562921980329652324897788410530741104203348824994953318434771537674830659658853042943583398406230264166320389165378690886639930388220099266112951085156928589193315882147790608433407620521701201999263654946720768673194032794383126634163823545685917385345770021087891917579236673449290911197767779080842088247974510460877808616859441284219712942051173043974351804081995485673930934197400820669790329540523889803543922142308397890081506634305762573561360190127442253779765848607336907209674113526116868842506228070618926177815764502795682171946629700183213497203913800987638197925590950127476455060549649451374496746406214553366548452771872934309089696081506086634692932064145307174463061126701708808268877317509418236463448154434390912540835779779490986989179256362057266531769051963128795842883572619514018875402904812317848375570182099082234978545226041961232752481611650695164930280226245596113954737880088810500670204711939759182430655593200959278063842194504299864962324122603685241617800143689260580664540461029178050864295537640480221130883318956613283927889163507026585136056498874670527653083942301095616906328554941386772483802881581651244507021598822662383521479759919464935480215070166933649883494933880050181487614287369457397459975194433775329778295283504805853261751717955121655586303529452992516922072539451403059822084726330919083090666413175044379496465097574034848440576384129817105563835769642734856667293574682726860558337299785619728458172736572203100705111466426142341754064080254411089431948111082203124709918893271978350609972275434740995036518318441948550346697833320720213093857671794175840631916781398761063632137367022746311857749721570857707636495185901502156970141849081005241314850672262108582921329819388928422745725462491947063788960557667964127064407087230468771476823748053311179002953028519416975606731445846964374668941528674632161275154198427976481722358771834663070263807400338930248270233645094773913034400433138578395976881099090443493391166706422616105504182111892267430749519668876645822282387727301222494783143261250402603273945492401810241016630923505657802496582609532495301897750362889767754689112069515039758416904202859197498850252253539564983382067322518185258838027171361779812408281015743093742007479233534758688635137260032658891327099638037732662305136722381642010795809035414781672079435608024321763281535623697830239292678963709808564191833599698352101625679756699242705730610554868699097403385978335626233379393115250848122897750282640392040082053342227014714045972244358196424670064765609173514323069753227677083684887585171384277439560198278496649290578801630417830469246954680507886230605677563504628483898015739822273513318026778561883920111350859487422654589292465527420659258130548104065862164640426033991633948753429518896788535029849037673011510092173456583739503082579629116917075589894254513800837484887668782939611183414109617480760824786065385250619986379274346953335102534870521906760745630516185467007555557483305857898786523063425602850166087781901138433916071954732459037130963337783826963771378725778331181738382474269753460738575589361249404625578173136614538937358469794119189680499645463495493130330450181987627541554371842318198581681516496158167324467059290407454466378232253823515712212784900632205961394195207388459058736039538476643247177296634894712698145780737949357199064349789158747369942473342717643631597453951885352591700991177077633083294495507336317724884581018462306907575405122524864960155766280321613885157634521323238415032516981549355942924753965121574158917116378010830079946826268737581251682366698396885257234114622082433960750679810593391498549059751812321097075905829629009604971903330954433551360134025841515766290623058102305343723441579370667289362781817657732341610077379942188744949240370849665375592717865616493892677439965644316948564747581233456735771598842347304440646867691561341353231630208685117427127980095120844875472258560462065632594877389472136040985483177757996060232074688246759920970957604248132490675636259941525602416102898547954668998990111164390926086722438614997842023668355019639949163040202390361302058771419364403148260235648180998332218223525057202829685003893470671400915373438261919542775506964080634897448429233241547587566279338984510831430088727375290285672886642663874065652068406386610823578022571381573456645246631125666734802818939838399828083091871853531793568630481375961855404406733397459343714675648686042298104478036712736336133325176927809939944745689604405311083920531264607866608196232573302866872317997565793247900732431547316522179492052409104813008479823570345578287125028307135155546310374031215504363035818201336352112371865394026159100354607494128814422445498626249484201709062522194421676645320368469791438702565051741314409036103492614479275865613708937341760229249434779443834791379246182629763217925381316021081120855922532927893958807246517724080397533245595079950428798763032861356042976724803360828328811118288556399921376904378003517342221796541640465585109548240044537326528160636401453466056628101934645341844047176903163183549945909430353585526231759714481956360437860238645503610159968230248151171918688927707698552851924338810817935822328039060321781795414184309535492286327050569845552490566508076829864910784691182307248056443408926573473865189894562248350361134308162745893566857559986957877054593371083936396151737507102491579519363209375633009864211202145003420815261567632344493428086582144381872889678241923041219039439731596369279342497011726263921752435608411915385771916854641975928378537322340612367182368827017461074432811837261713725729623200269321764292109727260857154812937553691927553655147284349842123300646975219011584446841676174632751993538772288580324568346360151533076294125648233729565590587653973394035518023073186098986510115340822881181511319828176734497178358439004999259291143654292844620673306308710013536052256055518689253891408877577458509049759798564818561551993793989476995273327194894348211013389210322185697888466577518887754408113173831742672812080046140211895127356993388927957789010858128693363402718096181172467805390444718760296623923705431968667791879916121446487400521778978941653742299009595157476433026159081546716200925986510836673908599225205714631966008723240489030448375935081580758443325265554172702345966342674469708714926496293626641164524125780629647749556840461713348555534105234853973096616380157696807200358722778860746264522008132029139551583711978091140103668731256528706354432642516390676983603593901104931530561601725069463170780810238289224385622374621591052753606834656327757085931988299183351152183025637753909373313164668511698273604588465276454456278735434939228837425441672209576854418644562218277828681148582661058561245701462612908005149846182684373320919747013887394322224800164137202120255132557327149547354213716134062167772206043509397156813649003970300334082526652126025185073977575215824264179227326370323383243665186366111399909102126329625939896741211099446886197534475517438602725161054321593127491831298164174145806504173283461797007914765243911188233828334298728464183018535001608227372452253841290756726609469455970614407141399982116268514675090962084636920583521078402609509003641801797263207179804311569448049987838091025111729268119277231184931540177461332157086453463737505292513048836677447397854918078381272822085952572565117651744337961349080131231086548623845968417379424634039679297932712927164916205228708329318804043144539642051906272018435649084088493404294254007175969860608294048033506455475945511355561371720453074272898059587168149233690849424288260456785489883008938103634165357590059776052080795434989078023855858916301120135658232346978425941837442249308307899365890814797048426716763237303599708737276120641454201884989382688907677833333204890183839987549410569755289733314654819777908448271439661781520375923925726652322015466733903234871114069247784115486998446990791140627825528171515621411373353102886451320086150712065102615563086944830734525895769406981844548004666020638307171334971370590734065117482329754375388168582840930693921846228986663228912122183930090177344659186689108650857188457213463317379800410516026637267459483285572298641696362372441886827844267733557036461896295646048526143478772945090241368137830756826152758036408210176901414514749077381133639185903033936432288353686428304031249912607910965352907650210640433486984673849852918132048668965908641397535267868159211594375299892776614085519013385836611233450691754672123319655402733247435043028777254556917531262935632566836361286026063734534927950103746761386966436846451146441866376214536163919590105428223236894791489964144102367039920920027579415885682564984393975324898359145911775943816722465232009819385344475887717987088916256059428777659098649864499847434064367962095704901821172714517151797355858411509747727133205361724680175445442773922739278500989073991410228478152067694797165528219813259686251006717011113604868483032094696365336210658206299063303807341540013983312574162160590788346347037198515219710680428635757586149208919183689652384822704690431540862748417824838043272390295320393829346585532193618558959146203566718732223419559027929296312516273035482618431028619811760768014206058605945422289069430615372838865388217653504046385584240206963960066501908161200729177501375898985922587510167913073911718186264481455118062060858081245226263132624889062191398861159896417563738551396546546660071744954262300876717386730616785976635280065638670985824966055997813938066677085087420222758334170760293668118999922006774174646898480689202064178952207554498191671210134984366320000918120707537660579769731513917959205505765636721265795031601643552115032081540772153249528379530956746444402982135820152092393282968443772130679718268999994869760325014182525708931869487922382184432256768847936492099640046589561173371498877835233452969932560954251077819191762262050315326181523090924505282835947852079207958204003184969839053191938900414855481961082403155546730580494467590166816626328469894589450926681707200191129742641966374026165891320438913653648736661460880240829826132347092324345754869213394680444798634818752395560815500562940355055508535820619195555293345257507454499278041448255325126363127294378308923394637932572304703402757887512896432672016892096340043473191343630853294697696429024661638049249071363836792605623269997583360363377097313579958523472466286284963311319951826755156568315062197539184187726812663105069143028926234847718193130213696911202150838802288745952264268887364418352491320697410194879795503803869967248921953234271135097061801962309281967004692696349759653628661227585875227835170471357409671270161434829754399068533768501507687722939387962174468527735028705112275467485922479538422861555804961557031169603009480713824475366775296564179565832771362282817870979126683177648552038265105575836493634689885096165475468673357843080873762664533396889820715886853908117893047795498665331734752031692124777785429550599805234257959622654862203725317683886559489336780420810852713067448967944673742603454360649487935001219589461300544710764357997727775646944709430480362410054131252565274457853562736880864783776974590251504334927328916728437714992643627591314690081163904272470726785131186699662722061617095379436256448137384679922099877154611948502444742990254539612385974134731449377387839069608680070275195329229089781787989623334990165504494716274276282354122345493308313931313133790889887741733946119672873005910196451298131915997733441954780732653413432411495236983787355713810357582214750354658677685652437130064607674767810552562700171638697819115200577197795746411238767332162544111260351814572354965766801219133316178625086436190985122207215734033459143270913690665357642559807240651909502558303546452956480962027830609765182393254570683182457696414317113187376720017990858728874171421113959936386524484753673214774340401916182888639694386311827251157208446338070494714001640695621081765873356406784339425970591472877403737377674780421898052444914828511041949164726781035864088516397502494261804575475447513915456857622889713525907710411509129119696081795275003786051092660554825794822453857361457588955163702123852279979554607644941315647407413506856941584184822999443922347898437796502653278136831691409821770973194063782326678287876774041394397486713451520710094269470329319355473915592496486698624434415374025433107167189753385739350415398586469955730772343993616193793523529443862931140283234616582100690862611940220828606996820553561649005464121221817091894132245696734549927974673627056306572707302500082899026239631685003890573109227172593746688047188375085221677327636545998324832685862223456837022286292322661503229412044102455140520900865925221333526073241512446855647390493266880939963732693516321197478269430120856786152688521280127627073819906822302480092237079948433393967124590419328526736301779963118471747349577292210370292554376706083932322127031122336549395442385997900243668747068194754547813563149436372631248331984939372732755161514394317316752127672451102063888965835637561757132765567635020780615137881356845779969958544556253801556591752810523150790992599281304123984223069123399834810445192177884278265121868830817984938580585126180466336897800001079822419399849026765289375088883666295013612910076040268149156445383454033591902033412601281300596353554295605048843559218887719745165806492437770549522667608563292017479580503978017057886860900739649476207741981937355366706775316751411184537672235160758538649212203069057936408083642516566978864322211687801083809526092144599171158831976931337647143412688417095583865808536393965326835237189668211343041144483781836879135414102903809392722340486552986387967037781927354331973930814452201669793225237641043166134280263174682439947915745540990795004293219381226178546394567445678301272187137683270717894435313845039877327510105228157029141767316844521670588384630881774504578863637000314492008027696181315854006302273475481932016291932961339736532591468032956479006429404480034848966793745590644479399605399752200793836870363615774475223021319970531931186998912701684611654329330031894793211756155223799080662979471428748819608508414424126865005844059926336762182460191832583902916553396030961498656060706072848597454352850795569801006644105833729956864828188427138174315879911851729541693560228294220853117640822830656493564007678766991006176342959594086982390737978676436906489276330897024337211180347943905969943845075378287197723806866829507625247501421604252856250287347483781943816258361645839678170943955631594672012407053031869973356760706658059937725723974020728077334703509323649256416324297367701761484967230609371498832835606571410127780338479050235538271485941818226671572599690460709413927674215295933023362404711168512618133420674358387057267885938461585742106012967728921595870823965583011044409085681578282410270516779316934810934440537829821532475255299647233114962205789070169701556936009792460522666038997567363905833518038917844863390548984288643536508000049511708778618541961909350475119308861448510073844667317313732798990905616980286410235964135763791270883686013068866842056657042481161018888354681095616491315600319748821794621347497977758440651046651301939538144445812758917577524985692951884540859602759592945037903037648027829536336040468289008536064334455743467050839322623023936526959518604950159458843858597366867014971937324457284462522948334074599167450989157640552281880831679283157370251899452958805553568495706168108676967948648928273344916919014613405322907849844461886838171855943615581492357738717980368632082150520473765998107405448955413258976154002964344340902554964863917151853103195869986477386150964355147107011113611410741469850226839163499453217915455398626522713926364994530696738119863875767254148448170292965567527363378865004705928689863121678909255625011883984927379046772682188548369043588109760328950691997221035991157013352955299012443384927550371163661577295544877320968440721520445907314454541055185656779551035613268640160469850674006883193978746417963194292312206654079407530449434327132490576862083247694639645745276605862432415094736431747750717499439136474258818204288535281145510448430700496726328480264707948040775126423369854769939660986982093208300118887915600100351766331590063568516335349769890730469335229954661522025290516678621741412130161140372977929180391780799333305221717513966947837241860946265027078569852840938026498755827783391490483474622500756411525979724096138762569616522296378369045116199026360571188991929912725598359673014547957463620547821558456053593740343012641284057418837234044696851724783319156736732333817470886259125269571131246282044255699307547293336232625421636086794452935814445249044229045010653575041225538875638191175690519694607741032053398473378955647456731341936539266710155570977115586809957178687342113377629471067350888060990914059110484777605871719822753214922368056375922256270030054828093940940920873586834741167561557605938008221925683940550079369520512725895090513523511105097129334022666957868123311382844033906574327414464645152045713451179185479762463258994522765742229081680259137821400755084222853177114316298854011550283821348753413354544730954774562111590955437766677312839588694333462106977197008243082499854170490975462535781034347514757655571560718316556136239853477009738534612984452888398441394386399597454781310444510284838054659316554986913393517476141029955365901617809073401443695215591137184944851573156972582111773385090713126235917821867784796007258984046166235257413916661206538155399524213606664027499771975729699981611749338551738715921469831282154624328740278315535890972315050708954114175124170467427376214803852813487529514046168844321986101905608604705605884315685040586961592997227019632462334944082811176028550334288980900106110993736034241113569560522872197158136560685320222563988285462225748904340426537046461336774825946284104036705070979791905227176016624865965516613469621839635708745328623328822455425842711062955391081916477654073474636839611819204354557458616547061464975720589503161997523098837496624985887886583347186868630017533620156732622457691837561353568571529797170673158440267325724690668106772304113620658916269401746890327338600542049815117474754689649854388127951786986921637728507176183390912823846174276159504449823712910383318121371044782773627448573696119353372571642150382474865343028986347646383854231710453379093021790468281613711848010996153706432791864357630346516525571218232124269847253133389374500493801921900608767806010035040867859807559868230000325925143167165502444625459269855125901311893949893144081004247023090564537331155471660886170640803464010927283117400552461733460161865685880169043137797609672490268313019068548929071536516832387065869413645572376625383464082050731148783756736126259673601202873126837362772681177874041178274403239176012825029811681767454868428319513048024458424773949212561754320015161667216398836238520043849831516180463632797285840389453952403002032537932219014521574229024064806771551328501246005080058000310343595167988617663206705387607488425633982491555882874634405452380654289125950460546820124318637122026425627986287416135245431651680321313543232306539272903611253827447832928559917100934953519846113165834903236242577067660888212127555870885957612356237077216009959809385618896831375303099306694186483470026124563388038230764411531643782133221905895892394745153401093874973914705652086774698142435073294472575455951194980259046240788210206143897148320309335800526986717661700683899384394533013069014998024064728287252155321689724146044992533853772885712824259740138950738875786272215060594039615111491279289597455036660365121255355634119235686593666146646730191828311278127191794736654463759179154076322036026410408275779142960506465278072100637486618886070278220422473915789315919610064359858596031292572396110108962585798404877251042170181257346446685815214407522399089497585978545944292311524791993659208223263580027778740405670093597551958709671704549260730371672884380154641447737068976979179602762219016601164213749929162859159599675340681604993922369904714755711911148796687771369472260449470605256057871091013017791601991089677158817606185036443189518781024369717419168331794102009590956741342569907505957778695353581565810554606758991870408199548376928100393988314181338601021261767146907514447507926452153992713176673264254578360011308917101568013234044181240312005732128060354981256084900542659914879222626087868765869343517715473013370950450520112736534933125570002119083637044960376920300529426166775947318235119620550123963801250175779923692208068755687960885877311257667360264933418907111298650583942183795335405574985002237974547863301408155941499275684939085166975304821692241768831223378397311339044350501748926849209589307601069092091950537241013710422526863478217426528836409359116709727451717673604341058317528150247181746215494054487409911933802226725022740059582415997860868293887026060798986513372633061420726641239641873442941782390181655119642547077486057280287836936893661841771876691325369410859196350170767089785540434892506368540879908404129811489524515386785937450462928128611060176818736518585698417124171985239467933278370180673711536320768930499013453078283677440148111130865015273702106667988517502269943277505264467880599753977306084628923351342308640005807607175772260675456272451502239808556692975607842003479544960755562232204945800737178903000237937389406885456998407700937155141255018431325710332009797322682687119627343687740576553870521517524089152940267308246849567988131391782366726603178424838156859881711714819871249932687814874920846921784651534209167057884563531439629526716396205834088275507674604107766991095961109761163326891900900949888196869281575943387424829322276491839358696417505691353318283883750678569330975260676656830290414463976614296258181753658372392433482864330449773043148418524912294620743530900733630292554617082417653597640591995017767422622554070392618579175413293070067150103840673485818675056334787190473843013182941856052257645035797474046700296186940902023760015360117371157877632585610780679406559500747502111542451896948738616363103492741542367109533796892457816475996336634460681199171381043071168063424468620488051080224235180212097827624595882398925676612565915428633779289323639432615692477225175022960212510105881575679416512818249085137629393884280324453365707574263237190765802510196080079382860244487008007996300701775537112637339249749000128477706698947787315443582697041782768168469942756169558121072928219212558244893820367408611196935539833218775850801247007812948090157049747452451511960712806756480527441172718208102749468135832339425782934206309621338293286457338133544589788631281331969365640655486702396327879378664470773317358300145566190902543421044248626332019882690282875089467598740408450173224338022152185992528745091385206469365082572843760107671343512623126218381603807751508893202093277525132339733703448238793443861786327280957540359336458423296011359541157522566115819476825172943013623250956698440796522174767638936545329718005494489790752437502607739817530944948934904026616197197042794261642556432439791635406635682169653087978766549079750752074040378692018566013500321726916564231817640667133731211808342710591039439953652853976883256258835066421508137965121418622782751200152963423231378928779598559797453147825584723919371410396464046690251546612253111956341304215731197460441574974023701982005927245381247998602393175315165571936313626051455510037172066345114461162757134429775214254325675617593614655384101294944868670327502257050838809839642701238231039372821564965634227707605375917278779145766794320363586358520436224118576917841797814565216085217184155906907588565455362549195641616361866971010004465561828922499820459485606740779449969147664824947825490344328150530166094944723570573455392510697774714596117413536672156826840296838741925410232976449417562199983925683221610343829724421379353349813848234508952017747209174964980870412238103586015721813721062822294089733763980347361869399102094019577392942569431389895073831727460059357555330855283502082711559876368890545500206217285858719373458918986627856848413979943498666563540166058265381725397519400275904249615184149240861537023455158688641670498273300705089489151863891178426840948268226418866272250732635951497786896419412013215967253019749334415015154446246400212827845677077865703269929243977203069238375906097114642391199278483749995861017677297062628525219670196080851981194719013444855071679918882191939334924240342942398521448327563227715569971944717223116937141372726250223136025590695249738616015190174571609180044510475580636472404989828437248356388575913153725458855261864861456697655078572815148661917365463322504543147288254326130686516178093309283256480172180473823585534140682540564063642831529481808726469535787448982738325907233357828979586682691736575412683559865242425737527576436006991161879436513640391804614887975691603943407738304162580544044730802832737752599400152083159565198080091114806229853901847974721625037170473918705246306443278137650454161982412890806937886714213949771158819496437658323601684234369191252192033390641192230555671963692160248450041875957867555436035497904174792770180682106608699037479332752331409109199021391669121090760591527376881589309716029415386772857025451212201825290177399141810979120364039115226632075188116578934344572751734974748203824579018724134054155234341249793354478982812409075753881124372694261666886851214897866269054224142535309848410673124196007001079768006832314117361364087872030446794253094635964193831903459155828848220695663844870525976272004446743596379293152497686398820846648299455370728680718459240136792198010245745367954481172717536603190249665464005099261994332177285452753694282149140811369186004947473491357334935012810790099651542603113315591769056256368273846215927354527495943442194740552026554764738124321271008741518130020313778243184929556332649089879532209473273640517299640723407003679553637664458673982097492396555133682426232089560939986812791234685428624026170989847002929922900433636535145293096875138422315834481525074512554188094256682619801249379931557195444968391637265471633211304092188896450691854906869008937973440882693394219273847798422346391275342523455224852205783722819176376121660940371748197595145274509888544944982030379823686244658079416282316341552842148956584371023587615309205174890531274794456480436469344690688328209132926160976480134280549777025919765538236095771768161389349246767536542950331541607965971044007044063688818442602857456144030731214122394711863788838605247830505887380360953970444194446867640637971979435356873631409935116314057179286682364376774561339407580186122550501659908974172860543243874654699888621226841861777394162666667751176848788048606714392276431473240147026018071163951084815222612417151344414114717611236867907070837752020416033609200790489560587627490715243638119621922540261212754925922457060656994828836341860554705889315918117255460321894975565938987595402180548894849365210559923643149302171506393683787422394333730049565676614295587851631301644916260010190023525203203685013453513885049948495707834145640785635457237813575315282112613151697656760947233288749706570605287740838311234408941046375502697421461918883803610561867778805871469163753618924480782594220957523807467024254452929668164230038203519045678768682310943745275375543707629998710622452013289090236499781869849371153199232463318399598750330105702302036054679275176104331776770540199823793672338009629668448842205472450494748608451224929624690851143446032339293840781336695595419786879282912110882726865894766635958263005797536893398450986834600719947236767295520694669874032857498642038771181313883954338934102879951544573831272237993886896911128046302729643825232014042218273622645434251817828616493947533677629513448221263930477895242898939173750905510201805386649162195378703818612381999389667881665937220374243760748633005290155542537465648308461231215594013948141693621909977053832550046632637819654300427235211178019608460701816346326155003693701780386765188519722438890497280848492992032070483637118629462078207165446396633822373867152329556636643278342720626654848908020431820906785315188531703408958427036926825361747231808321174868327701506104738107417064127413832174164406054479421748533943465620922581262582667713505209498414606437459588921986988038243480499740386720939781626331073402475043847259613738532845716209678665474190108915126933143247465627037377659248349405381484701193011999814130963792429440118743769375589940260849527653227073578238935859737958340700713388316493398316169383008722476063300680265407201093323274086843377408697148052596814914074014328954515600031256920828546242026739045915933815122641906043270936649230286162219317068904762609709333465325394198778481106239294819131449858150324228083489846392148817311351885723781605655071314634514268984100207568898800278261315695628957104267049857757660682134374927631224685108710001132952301014053530191814954351909760638011446505644481921017504699376814020422692886290533013936094914158505087761828965080945558750035887023578049058327447412199399803283370338621965510940209622433941670703373511612986618803056067184484502350171426773543062456337166915214362569256824645198099788237521158003729481560894950897712632680134215000149029345099570646283912255707155217084461376374352678402448797415461302614948448738672431490451511672299911385593296244353309935288357365055940476221603925177491989382203682314779360289347360075099886302872427999916332144734743096265838449509433598627286136179223899383395639047659569397660894493083044228602981618039125327424118188155538251882471911711397160724645609359509619810321631377092627693817415861744190093201392024258006739633750688049597210165108721436202540685808488217149929126717401963257438926928967820375510515964498475342966397547659179105207498351554491270482132799597244445860739484031177301980522730736164114037509317968020393195448648322720259978708052399989620812414554857894666824371170499504540435739750990965322532649603836037083440226368381363963520047353642727285425334703886860608947719816762879372928584968506717005266442606345242592386634345934579403837202857278827766106029367109615050918876176223252304328562241275257522551396067219331841679103295753653321062994857164566010410338303925965226803538322476223244882513910539728613758760819738186560174635821119881743450141040066775056549468893309375038121408811015713794803123011666556335320460117084747346748603111332976279993234892237252089355217661773392339540895341476218694412206946008713347343752563983487462530539240938092021170344882230361809117527056752810704050168271919561154650882161522203537015865160755954380265761388225616905021195022245367162466944105717437544960557108974564595307182556541451869544895835911144903080089202386020814307641826097569654952986165769225136348844342124018015235812054810709615710901107119025917860590630291829849735699736636144148722011301259772487465492448506216724033985325027157022608368632963994606641607138845970602230287337756546247143115202596040763242781804223836819258788632497703110148723920483789969156445992835450621056740754166631528644470459763167722777056252051306173840703164075649458966171002683148061658749639732388401427395194528246736739796008060944568703268623278441938654983566251140533001440792975808568315263494669093741329584308901209044504606088078170435623667060004102088492191349685523235455219673660840650331705786376443539805593741095567450196296691612919367034058551449466203638307088812529870276396242471834290329228739308956641329946169962052643195526231915854852652637814927511681197762201721500771960247793116379357987298580088684243120222158094149892822077270403606173666843162679864071185411753857457248143582739680457999852210731803556669611432076040088200537826270544996862104465138472771519425996579196026176295520392919131582528328299188010632417499181302615478707863490550340035106328800126288364469116186499664920683625040139406976135085204337130246801062971524157460559600526648512299928957738080321077156308676639382924721961131473591097185667843171619876796055725052195536147951188925996544538681955824129698096535609380952012439780787050807464767993240960507468394297927442789382412633837963382561515337087309541660284966860349315027262684446951482911900161751952164862172426332993377137562271640635232445591165225883975052130829109508224701824859317064520887541071164375231546435517496466181888587527647992442805409139232418019017966208960824503502163270075943736798517723276739524285215482507691249951261558463252839083124785257598092295878478575821442135108072125914817748653153534478239239971369674234578713080974998052564623658263686382936878440534835535168269634969659067207955189477567969821603636997394244357150323740268903930265299799880596517130017172577004528023027968639566027353781168172588008670588930934074840522963255418761786661887247880534711522324200185569379972424286833064575236587547622298763534506052710274433735877159838828491030507474289820006555798160990575391769805970260916163241845531892553012854327515634280254590347543983646488973580820160203431987190734497465812993065129556143571531242699590860984648668110815958380040859120067357325800545799374375517858791746568460970004258724646395406550595128177496792317115318924425445851553181625685803159089797274453634133719747305163748770133213167788719605115897278751558147245917566935123038073289768293152704577568720477482291004460673807823211088606143938968285230788146630633463643586892193195650664050269506882690953760664132750673831641257809632072400813038730170275912456863764572244457139328345908047016308108003117924856341826540251382619907655622949837206212607868493493008495173355822204365191085201124398768618251013130634666119766624820662921936623025074344053901050733994910566589933660466752425896207940803770038519005452252704648244333588162536854877350871990938787491774430875368602843871055242806171330354463738329719770655165276790204286828616786564018866866295648356361464324011820613948094780336220051603596534304661658497657603151950612295473968777977957358995028757217253759687035650336102818286431697408493563727035940401026440395646133777435843759167953383116304523037966941894384570802686192401545604694439285290151889310602342503321894656616578390481924423367547327907186411074411147699278210174903007700265833973912601640264243963565113950559033380420910987220478742175712170051798738124063959326202654093097167093263877794457477090472487973342902341189884788890172867279527577117508646188212904764077416264725492136513454456322242075177000720587646945046337162966536476106724254757101883019476544328951016699756348423038512453371397235207143726932877538680990410998730135631710961720903544392579679588217280192463025749426440430240340466943972790206535102069419729708961680198580442876670451548736932423899756791521062876981334490503763303900191504190602026137188702448414766964411958831146239799065701923344577611547732536724539047366824527641985527711815110615965203584015532480620610970709048904857987670307130399604026279898124030516384762488125796279454760962605476836699472698682744109575063860976044558910253920252709465216286956208738186054164915105024511702198126051145230017736553129841203798169210735272138769788224530285731816106052301347225756261058088636460642795665980947294052643931548341202237577156756709012981164553337015244357776303163957602689593017635052410501635926379052732961396457129297768411002233882516575034571226470523808219394583596856462799169783362431469615396073356100357273578501591776611836401585259427348435661174567144023927859834676964234918583037496165742765192332410664697977406390342593107370049849734305883155621992427989499658511793713989295684320774596148322413261039420276497046709878923882831920610683066469165038470547285497297224560349917361940714673289378263924487260546326156309033255267375334988593045544813886155901925349398449453218319676807782746102257877730659370916912807790998943190074134126006561743285519011227087026982253560327089952786071557546727197830686921613545913397320104234666292823851688118127138543820762355235520029654176216274489955347753326521906945815998317472384277019443258370354588430343322869102700531862961929761188469669759350318964332411442748889329454846426820295179447702465451986050475884672910708842168529248348722292642400206830888424746105264321046491763725834686201761245883936846201043030651163806205292034302960181760501930355199249755462397160458210733533796606007958566114224153074288242027066095012609516388682840906906105606022803431595397754216252727789778447059259037304050586519480629768026211624586361028543419806534356615641049964709449248593740195161796328295016749577341655895762104986019286391369715751441274965797163840015534411059270242363046456697333616299376076060134041940000054519979062204822845791467746504833120631204723121472676743472041725142569937775948218355009851334231408111513833841398987867466155600756406118405953055057237291336149435075748001923674219148887538112410050074040240047118660744376387272231418078920515148761643973076368364044702919078426658092155712077850364012661232947666844258597822743679032596400888061270532167452899072407862384790355702376475800922333887644939378545127109678939622206961779348461554564942177547791182319611878353989415506156055405855740428070345241366875715425823673224945279747317743287694517942357876395617820226921723104377667276438041187927653118755601604227189426576260048600841081215894535176527847057159208723754852333539315952557429138796932217946619199421147511817665315021760321691115110930025987538682014386297459700787934891303907710550935636789028123360979137437459280893859115713248799779183843755729711099674963769810326032937804020470970197863105287536993914622384134366099586756487547320898937033510454822094657134045732550657388600705018301394813611798965770182726017021977003817112561288120418997476071958058087579776594697776200594604493181487084690610946089813822119619188054077498724769032270630413522908228768556122155554427391580150825682027745974953283350367275808527884465126424149697486826590719382365271447325598073682661853875573691443155720202924753788463155582411349738855994506113724601396819780077997632077991339597472964943524394662521037145914082646996746084611549184340928633039265529986234336476753333999828852176372511248512662994486266229773726350798208076580390266227123090016389080584712779357007412796601103839185134365817529821336918142040428527163646697945603501309243732796722339934392777056929301551599524850530553100499436332836120048450708290625030317503106756237925020410575377047418427007448831558034580755225989783784833903350081794552675419602831553302449985369146650957374835736066443882604221536442989976546164618212053343354188991367905113000685452456582797985503792758141577207966812005902864871694529552642063981251061165481031182765961630016451789626526423264618001064649701930433886744056482133469516399681684038891798880183459970433009106973394923306082671860303053416289773636246213995991305391494403374789866155750448348204534912112211075543283703083208004727122492611672116808951167584337146223787004640345680840387768964536536029958153596024247785399665489973569951698045600109481830551049680466141029428907159903365895175377779804406117495737737017687606142945130084971403410916016024885074422834310387303599776372460571957291785163146475447425850888037840675928759400937561196961368393419560227081475349635539685516683722001964585480986504692384057679884443824722191211211911416188528220659338894751867884083596729199746974802454353096574743641978199259711728670130668110065458899349853974226327133888579998653041618736846808022279572249373855337469309662217016104882276260651456552392294536885821217364075817063301063155443522593003598403539547814769336781434114108225753567514871584957747220868979672410774566649301018707882844394402628172212293243631117791326652915979198853341597036659201935165915743453546651470809098713074752855904234434705504515252922239099614633715859763652382514357561124713058652767929163694281776353857753716599676479784656349511232756765966713553335439064323536268027809786989838894907395312989808996983236891379374532463686994441070081233303663320503450045816475180752520469260925492499847042737346618264856193487164271007749181362463696618496078207650711555205014634747530767611823715640147200739163806054909716775224461546961829605437609817575352546645217315919509501249181171439841160161573244232078458765830820533057128794916542763214894117546122775731073216337117723518662945582138018267655880638048986698743768678578418250505659580174615614008169229914519617516223966122228370128849944536855349827082060483726467896970069867431211597357355644136564710632645266626219813605408986916502025285710390889247117635271824784353785516473094599964565681999579329065266163405804185112488377100389025975054032160850089591261799042075665179890342031156977030103265136403246878384757558459159553295728837305044920696873270204903868176612096787108247021153198421761682833510015533292602396940417458503884469623003023817347168804248868639582120117902528146018326771797454180877773162497436915366334555869073114388647235555387541362787635393095600592998908970698650654672060345362193135707543521576097559158025894651778220198188621872887545833645968124021156898984704822265726349441769918618046382337350788813747480649671795969648931738663095385488337832536790333639468930813204250231698005707412060647373797937605809687287631504489937488051936707324028649786326296080625727081078652993480526159254952454609610246889733174084069008859790804692445970083393834773968840598604309637781428479818851982309348708319588765929137646966474794127506378785937135803339310757551061460712089187179767702930596975379152810476534455639981071998500520228414495398925966669753249181917400179769271220785539018760468378645769392849846955346649394267212083587666515910239522278160346576299402454236978001991167694787566480418472858330092472588588862004357582660910893996225512249042401050972979905183637298440645513348060011262163671359823428707801087089552071794543618641902802201615990140060997358121827202834701623337565063763494475277626050417970085324398550243767750990217639335439673954907670421235217419754439027695179228908147447243859997689895215227024041680043649205627058697439509867049501127881902284710132533207063159997010276805929959590863944978306811675512377393421925889771110882153629919970591317134211672866886204096724840552341197226545529650210441845572909596891865337571142704331125244591995581972293277724025915027261365605058441390096422972797077994383490169885119840788461208338265346134497986496329984370097416254350764971390526932062221593223350864757315339452200856725924651105825798296454017445971167403848841029046879295379803826919489765262327186465849248452252465198023728829969758130516199039722675880826892655297509499340187965363981236086036955113234717860601490048806182679039321564604772175240102680736052107751591440653625807847655291158126600683693052019481551351660143623589907563192128075863522809575874507559299530991351219246184204919404231513050988742712061355906994248448704524108005702980747635437302286733622577371359599628478277247490920512926766213195416544502620060140349855482080598799567901076683990352888781469744694265314218368242108545363905187063186494828590170285552122181819400500161493512422142276272652019376556047911149846084771058557129443439927480730560324347792035211534404510164901794960675722123692812377501372119259723542959332299151458698588999484667845440083805195161777860552942360532193848690853970077330117528183808503158963737538456503133020354992082599755000746236670681773061423798192933828507322930356813575878513629506474811446046918438645145707544828634161231321074200574633622486682678397773142948244318804902386215750788230933163965257773838740165523329788731093745602990727760031820688445409229894851355411077769993033559664895865315433982196049395060517573804988462766013632342619849351484483438800885691976899893647231301728722203023143871723628513494386930055471956314511007249262940904062022409283272837112658648314089751526879330531803106800818526239022983664539312415001002038640815841568565448955579571926778265073170882015927461103580185896473184151503636671671568052308756547035407768456027027832256916111264849736549283955903407610035274798473213835033854709119946065228602244740257199937803574704473618268964763169194504010679069973677929340336979298831290726172753613358518421116959358473543878874159374795300476629348679515213492442217881718652118298352294560244048560673401305574145123024145810149984580614281209747597451657878481037627132814509771757016596498848329632522415317891308065312434939322115290431477729850269593870534347661287704947327094323671867408481621899665351922607787127802370706133279263420105928138137580299951321500367460102561431272446399708018198252235710480971166505824482745427132471297638071588031925369541461727286143038385909630167929749191990015744665528926873345379764842808019314325811706138673937707272314616577983818747204588589387465394444660366704815178665254060682389309746023120607657033817100969652433625465992307258257471241873802174609337826580418862768107996866570065856989192324911816440194169701019030111480433146925991795235376724405509390820447940499022608632618097366199353183162361309478398559164323893021293807519991899985428475236295138434752564217752012898270442591754310064384731467852717646293725021093299395096337266715015641577532063818125613120446085080698240438296600831742949407919211355032855931662212858107307151494926251865188482524810856287996820683792900292743686352717228357182175316592190341165408777934261034602106279120624224472343122107688950307004745508754351897305693990789451612819300239140497902401337299382743745786426303790873010589467403519692645292146254954042575507336987113343558402967897051176907614460122530590394403628574001752171192315143964206635475947844273846378783937034268544085348948422833862421421961295596204924858997917105516946455790658181532158020366365300049880762813348845493662968163975813460113199977346559971957388353882743019264060180300259548210647833571835814765966630504626246795800489517975194815337765043260439174283886205256945734039947548705720775405326057721879209507574124673668267858320039433289558960955847159917400430938257212233490309719129976170288503882286082013193424420157286912010740298729566106310732849819450145027132301892775310978711921305210637214621534447072197624206431471308566215550714819721116351722650370930846400853553911668831164610143235112161446385811106519032295549633138383765828098836935133942776349606016469882607506835886485504439520483739780098357935736726639050823171321709499500982446945122692648751087160183784938904901593146157412719435544961080989822242443259371102460529726385123618644892222296292179035983542842178032484696269925048184407972059626918608991058128042173286523865143913284975282934506908004580121126586676701681197801687748643807978688132066646895675749433888855214580600442923683499098354207415666918340857160869249001819134296352569249687721991512383231904968227628559294681685531076114597719796420723218868693313008538385581956155240692192844213511217953960201353741549554634914340362218445698803705783370612837213103050482209267557630070195479604137629373602451569706105172201752451603046735913690573644165319121101770560064173111120040795542304725353440856688824854520870714989426963469860793215778762072697460853172221229296884383651623879473355876888139939558446104364096817327321724122236094430254878592706652917230007642263856415753180812481852353871835630801841802604135706905303674502598535150363776548236739668579134408939128798103848418645164714769557495579308383004221828133049302363629205835844861023655888984567751685874771751106987549791368609966323210774079250144962307056269899842394894086407689930918673732666680240557383813962792011035927768924439516411765512949837024957052201835952045434086657086146722908658343195526465647551201607127502877605147094891912217996651272728392499222451318901036691818829620024558939133439621430915668369421140932758198240134861182863920627225742456593247887848943078905317364677984344888287517775993690223218988881073823962465344005736294128108351520312385403054206393426861497534151603358182390030782076401318034239669365651354824219447647185082759577346267259907708448511549294471680465107716102950629881565332345215593654278064882124993305183405807655591759004766049130274613168809914189640328906007014435470857448089262507682588623543134050290094396729845175675394469856350584832214469489660547263158128429105074441795621929698297861952963154279768683952310350168019853439448024116494563633903996271971400835779969041853966764677046275301083407265953068980024518252835816455289685598713678222726683827454693835158980629888701086491141818422345991226538211547391146049210506662503365563921757269335501752478298311840535411946379524807334143186880071398775823817211822898252764592667725615879763853395894536627362924413902923118349911439504706847831975784213540373446193471598261459089199670563521667389431701043324660567375777778474204765905242261277270084485028910233096077923598445682827568780300730450364140464573339774980055797215788939191489454270422147135206285818739279344274035589493833385431001770670655517765177303146907468358948049806938666855805056161030748961528250855259436112358547388369278890551672919326153959311783134840295686416172941248335706860963081797470419095061562980640395590964797838593812300628509855580502444879679524482417567972620741843304244193652446848275335518276962737045195774518786124787267029173150906024201440407764056961073160174856797141704457661760519510475787891592473102564628450430610998310285668217887325868216815812371932925250490403573532443522990321878365027145983659648889212216799305531348051758233085852528933286197935656484390429146316198333331580763532196746651916302959805843041290372841459798578584625600822023687330687575673710280717078516419767770731486487510905733695659031798490594535727641033712537395962085447452173191364557479524769302317719012595217668316391592945346062115362272076178818799539319297257128586429904965871616910691217373169570660769507555564594446530613481019894291916916882369192610002690671867775325813551777519360935114991060110211497303014458440594405127183346491387368366701194225920268353284368898929150476359325008815852562783561471366881722489344207584989353587056418162362263416894096702249311951758958206478190409291407103318058737855789012832308839131619738512511883592593404438979643284647462896914431640885716922325725374905300098923816957420056546711342607897077691368974658993385514929498683326591661945859793650196977637589605237001946005451455521681609204198829495134199946974690120832275081016985306267437568830877838066825933122569994319023047152891636327127866581606027049756416025401837831719669432825016534955246448594232807166482533859042812160447554300990168146004939854761702155721160873187688000168662265533477070586794311077543775506027063668033905264716234901677206563255310398634775680786508399015780884323335836269873989863326428635205860591765569204725277949725683381923773374810105480976526764559401998348562384760501420176587035651081785006036708906058931722359899862953950357683642474502466147045885093517859132096999371634737201681482602342994307352438957932301808798946679710484395307020029267377442909220885398321865957017418667701965742573742769513230951436169801938685269052425212281162102540816285676066337352863884321218251760898251161945437280190584666075809611592619607872013456344498610275758012207889576588832962340420646103508070474100194329262642330807243929611978903962545743134837178320950495161900642739490473183216330493362376742257957252379793610286382471758575466169420946194917154880052693168353166988560167031714611276078930493425865848409173146825554666606591620022046387772532547746691496723838480018228964567884868184705581806251688561757500175607358083425805853229686867899482135724633387283918418806757900426705241404751132172249951690218454426585782214435838958909368956309303688968793384885681601779417436765553611211030478003769294863553081714040876611334807051072215535032246901501865183458664710330517109636298653687598464857320291942366254810446207885774531523053085595059987101190327414517930920467433717195612932836595577785986341307515583210141203237830890990941710630976353255399666931297503144131691834431195911316884116189297196402535362478568256321155218569569194585113923811043568471121383752977919760222108496485525363763186832402499327505982731921399913778202609732524180302935216244573708365982871795686683233576589864227259985324269245758611482128199187056307492279280170131450806707115680177372402345930217828631145905396496961855436057240571643260095043035638324138557181736357335725330028822332806114328359268005437250088673773497727990305408841920770379459245683733103892124271869863357284590870750152505334290154630381187282257281436013890817233968674664137685536319174793658683562496415037201584546324262809985673346905000471300615029635976849468316738372284890795878887400026537942575750735242197775329423456659007691625914276925162591790241545391189771594228278111155273703440298942419667468916930818516100983619875256182981635753154722890320400344936110963019410881175316870609283914408770895365018717064338840129904660159183735939526370677807418499909222206949101016982291314405015610005848434560399729930244132978073872881681482919237104337687795099002156612025276788497765734370406351649140544114182746525218715662863780020064030809597934232154449745923757516725359186693842722871903754582869605090014248507166735813180050759246214394970006110698471819642080597255907679354620668274994538929573046832395312482318427952280386967042034608167692594816648581802851672586986939281375031429898483999198400907733441607233007776964866432816718648420164583637180208903930441904312528780840315797329202191038977623543929043987208188457909511046705032821637258992792485761642592674934393762059329820926501426117845482800742764178559574542404674119521514109312902228669888355074912852470114844006548187997157369786836663495617978743724999999471548279247618543498941715538642769817140628490919177939032894122984594005512834830850488809179063373551035263774894721439302795422088193863577362406979257117612086434677926884044141864623542613852971627986216744342028301303295098209230020494399507331703205527485623672654949777125462009022947148542064339704589700002020767074420382604299082266486797393792236360088562549972533173881501795777368630792239815246859437220890239181176104084134249765848205893960703214471095213080799891588490874608468117054552579323028968557351822772589686710564078203308028527244025031027343014861522631177316793976555446820697006175958723372068422336870779637589267778911886915777951395344314320273934471435042165121667377603637294406892361838581071506899100482441127490496454719904489695958591605930093254733314743255495052284398468817626494795928384299236931696110593685463957565719703454838678355783545745989211943002318075635915553002998880628910657180244212289393036554970185821722624746417053370931567589540976645963644631061277228691578556069004195756779619748483191218782491142505450784893213324763142160774516588215038389029108859881785290001303372415861874650682978474682069343680013072823308145031990797945780077580349034424888582869154314872891640767302950589509877852583707057700149920136461933101305113229781380215934644967205072447064476848718767409935341490589053963047121522538023550901865597832130920764741064596052026526269102976906700625443231822453476278139270334524822200669227247006372002789238648729346063461071158555065281891799618029876613958611551126477749796859349483898784991171610897385054520419970705606686431984230833544689405971972453782484024458812414347204171288936322154773407809770801685391216730068548000728085045842190134704345541008589848217195777095105390555167390779833023968445776200596668977652594103400715477470446358730771649921179949556421209772482532286317893047503908418400443975395503564906241572205714174726599530729501839949421300911664427137776355201536008564491996754849251641366509834981136236665496094677204582298615264249343219649187758474752672887987777867418049991693280545387122991714471739707339299116824111254334729222433432405455464310014868749475784455763637943621356783577108607171678399989489668143489512287372999246856261004422685410158666520968110733245409206012490254360948884661881104143057303979522718250760378715491027629659339809735019310116180454110726444578732409517506626223935821143127523109665279676807191188066418445908572025044533252729185017443348772829011665895227556508218624900035993118279906090234610101196137795355440753939595593380076709423970424773005579977557747040851131695291702459983532539261515236253723700155195698009055247214648928867451896441031035222933365333104326652375021426931782317031638905460192013442163089362824651310825633589719071195596976554907379241247209261896393969288261153573343682398144040518247119736981314557108406163552065416815955584121733111625032951964334519437137694072124860501365116089769218993491169020084526323574567451714761174611377822732318947668637332231765957008874964252792547383483975513439319654339540678518870246939905747158552788243600553107707668151501387533601746586571869562767994083673323488786823176406891439883521707141873105993789684252757544454581554317364454295153599296893478065980061606013511155605532330717682785724739120406377060509629008136692398577720626856104430087438416044924409622801890807490937387733925098524528406427881815691982123954065134675391395027299189664579838162011912963205621055460628169452276791484428665903274573274879539733004847828044106821015887052536703511404065288637362601645468896635007419261934752777491692399471729446183400926635658573312997669946251082288901186991882274838448632479373150437070419038057785650859662082284672906969433692000471132414829704558480246042970588982919981457436153464500714545689037359226651213535952339705784965541778614077977635194912831750079705396356561546812181258654567771779211178667289097437869528843381093621074756070524879213875085477326111011024067424850590389556686602430445772108927167110454446537003554492416649778614989956490647596726208526999927020225157978299358414768385601266233316200298430625970421321761510387132875731991008630034668397218166802419353981190661426534444305320383900060830061825351116135617303520440605736929136428482173428527512903948368701146355440494917477405222900578626011643938600399686692788880740263865630243168699206059241106806668692374399391546757004309938629478966129929534048244572193824642981895248193668940591595207818795155512047452147519258896855576607857903089434001909823280690146000321321297753845619313349020257936095715198210326331775966410476912435405783884887766961041268526807849132925329017822138828021009419573267264299466809137953058779814034970077654858519412836426224847757787782288564273667682095800522724306666094588225924054898706906649619460651558119843853249033208611145516665420501902830772842406267807216044468307894452093227691617926604970156518635121775509938538967724091169452821636577263124767038205968692733627273623403513039260229903622317785659071798231814308925912225242524298742160019992992837694386350522802513821264927707338298704245176896846333566337384323834908823689416735445021271452047946020255683892489980365623649176525472201600182827620838545406996979258818660797608044584277159477393361703957912544152166787378409402521298313785289333200639220025213123581914619294901543241932953586135596594592109184101541058040235357783429619454686145555791564357763820341900805181018980528558223988440638045483478867781030088356946765385954344049189560019787594786332831850024347616558433690468651140570799151158837354809663479434027106875496928012813920362752410840611212598118681039589947495160430480136789402801619737289242706015214609241022819926795249324557457405443367904583128448649985126067394578414675364947712583585132556104835713515502923913498597722620610904644187249264135810859702484712696532144254133795161839724330534263411447514172701906484164965320224615001622223262157939740135214138940803230420545221712053374520649619492876597961177304714933608785250065646755872363341112669621319936490595302204645171793201192862856687482360860933751262705094595882670608363354937392571961123641722666019759588200568615756299607063210119580333358636450259115637295853779164630037007749282633133014083146108361392806622265318478161587424009033159734374244277359645265062727997026646439202379558458771879054748836737356026978413592944139855776301131334591150563654011072230665643980629290279121104140903428437675892333471893392579655850955736655225972311928975952945693014215226400779973878168063928969165776946958425989125632119062655117858677524422165754535482456213616739563701149877643457775154360476267520216738447041395544086358869136771563581779918289060394941358477188154152896169053556215927192071732168306656024969724787586570743158882170964548102310621591409581850101020929790302705913349557437743622720146985150114894856745069562795539926237999237282332886647523288064310017038752207348517612793615661626262329483941275975077593085452954498326538508137424714239426618051114863214583013723693864845859332706824980442055534564382094698303540501033967853881458504627111914824778948677491895636908716556493259938757241265057080649606226505004706371573017085649440785858411293356714802876867529503856266903700253984116058668062067054032513962351818980281662611440804428659904119138234500972826610855203846831583127013530288110258638712002118373859696970913013678296913492138485174541907378313216855880324462928051759778632749686165278120598508638838362840144127485279504333092946196186328880400056022771811535656449463338523808324393774985037827259292253902580699754677795141534448189143750425829226824773453487595135647090997108259261544769988197872039847229684781079796680402421412492626268945729341498701637548012126749561245226524552668400469044491469650793799683559395720425832490770000411224458452968977123229817689245248190104999311986180529409805717404045215578535704039144973246232990760747005990839517374259474588009313304564362696766712733570767779189922709227023809402998199979928506824630231050960044482815406586753980315678169818577087222420411225368953063307403692729168775105590848571196723999286448572990733853662377098426269729930821382905939151934976794575224110925467924947006158440152793490376078710208811367871826971531401930228695184490852962440839434767739169412323680204550339598015495883376547870577034337375159177474709353714884917668327459525353491439553667060096092077322547746912233021283069498520184628900936339731945327108560811749316540314670203183891560705385101951351604756154046736873597729866665235544027683356726229752916846707021398820101198959289230321232878976646656126421481830018139813570368325430678265190675316743112470353468259835353579034082344287156464608712626396504203001260908111296161282863784392317142376744956755275918412025931616761485966431302995052290288890978808167393687367221017412285946582072677830926776077667757244622219381928250431520249825945278027628270584190980907920053923085294220230382332246461818596831687149215963243478267831854391998634162273174326177728329775312050902177346164340135773259720656385762504865963032196783031665684944691400623104003259866905176822329992049360703283344615166207012142082182909796766553250105972361604094729919308222500056787596152352506150454932109617178736267671993220866173913787674886794930986057099766247837070535044669201289401352406631489507226105240990069998809392757753988161180907161757874746305840414045352610012495861893597330754058051638506647639133541802272602131632639594791257940698278222442059016051815134426680128145009878498645685619421913806567094701061032168376806472824055224502325590522897134766484639680520353823608466740686172209722196972623156854105878153890481816530033835971776387788947385493913202945715579688280320664888372459050190471588632686079144040922346489877338242911451892374540422516503690086025321423174384423416709547475330498383159360865710612180533601506575726582805105971959396392464046747909812801131982292435991123899437389508946144282895735347070584403188289363539944510637198165229313436596415635932003829964010965117472904171391980890755669569825239021060151415061237197881039064218965206006265342684639595634763882747867163563571253826034352027623079571413393718852960534886295642915084605974707197288419097250962545025980208705121403407320280091960767141831755703921730609452655666144933095772374941267137840121403271792868628912748802233133821240054884362274607400098139428400423734013288128904565184860146310977720589406013472913916802910237516657515794056893855104020821360229455529069428773682339843295808485181173256163728426884794478481213457075053964196049330961096590760176838851453011578328486788387504194178543256518960151725612234682967907658145958968791200167149512102201679813576182897270528712972347148449676231081264025022691180584154423209490647188813823569533298923607269850195098509466007198553303865992251079917039725996216567070262652968432996754566974867596564397423158642741251356548697996358240288234488763340146614398245475859513772052160854145252200153140868529875919264763317225434804561114926880464427730585267827351011998652264595688043942407831057209429956310150012629195734566588737788541872493651335297594752639594631143516737779529495208087839531881063393456288465592360947508686093135880445149594986629391994832223354746811720235314798941241951954063145450247970365874839981017081067788426428646972171761088386860524376790794807117896877460795428084821469501809530561779513281837226536239444700398469589720011411143150961409064762862591757341155440418144733967032531107856767660629634000902350317032606603853525329759619249446494741446170344612719605261319462831339786242960002187502687886648887985844607543124016618699863704434668555538502622129082922380294717888034938822219732589873127686476403694461163830894196537003616260874356283834879751416576866521515120632458973058101830283576972489565475030385576245199902321894695005541708121666892244365548788035888496900831328968142012155382956297194977186237201053024083590822603981304191697102176805024368482324826258646308714939968849641011395807005152382962420596904376416801751211764409298474168255964109072070024559153157800364368434289767931006822948288986656730506963279106184183282768581495343082402043071494806983712125276970995353968199862535702588939042686062915920653927922569293836545623209987155230248810590748053080435675534578561566943452083025141012913939237592750588896525154123925962930906526480053140387223301750694171861358435971177320933599577347787374197949032123407847621460985674990557314266437642206551505192161869347268759032473392710238166284641055504346941450132087886370684717097888681918952448940653014143077907874226412138432946267958335345082826247606312769167710270109183170347984222869818469997391390659669432439611681177888150152186493949776748433716698562782330375930564259323335177447209248344280214958590025958816863380800875490599614453775004387525963120682223840565120311734379313676965885362073492874498797636485274214677041037244460313156366162836396160428796715171492978134080249480036277031203852479967393201879317646822597237734933545430464690220343323439411740331734586961444987032454706977921671359900391674604605133996250127833448416293092061253342590472401068843408258778243306398670299131645943249696261189706701339832799144025848460647814947900962966649241611611135906109147643530686300518634461365584422495557872247432317388563998008069920415311017600150677334082836511299596461888330457947492176206662846176890210020658465247992995405205573106664577713754296894185689379263676977383059300412469307459373109579000046024990892327286121674694949714376086678219371618148048626919264338693036978316186759615096855921849565831664643633876272014460637119030960546441453013901241792731099417181617764841926911856604671810826428071789799588475180794512628704893752673257183096636918992816776786967701669661631271413196114238102934903781776852233954919687786105036550565525370607238071607336628269459829571067993833935296660713765363744795469744792724765049190260611331115577817287500186227168523509173633545590876194994397580573256062422328637564636115633872959188830677746305184670201619017854991351483761146280518453043763508520373378526966245547065111788627606651662285286203966128637412619504938961323939196432449783491372721694407145181419092181682053813250327837885292418452128598121719111508993066018876596130828456394549008521784636262879370923105314526971193841288246374104359978716081495748746450733193169599427527931964316048727119015297948397164360776474455041863062899153218352605810527647917932981117248941406741901569275624699652219984415553971112322729331824945518325025632579144770954967786303304930679718028982879528132768717156857279935078427355257808596720379797948039474958667984180494404552095485218392676927672121831852398335134326759221141979380961043673157107005531262317701851761892330263877466718486020794574570871082174321612939959694615596792032903307603507127939823336626118509072443567193600139081518301516060410891841889749113107417933755392903707435057893630098434339133261318120357125773016747749180766994503219497647788844302938378870602565448417420414960699080008625689253114283487722654849651143685857987348649536564702318178469841340044766309942723733447396999658038425666206636620699699261287548898377804880918710371695563073453853164010126387349033880339804703092570396955050949385778385130456991997688773407922117520720012260673042451043810837061419888490299754732610737270205050102791788063440779525703614968363938948785124362759653127509318670027702841909773387889576068380917448554679837021216739462806415101763446175707937822072528669369217690033951883225935536675419741905281533613012507576094639303629233921874417700272047822125898301812186689121226471193887222226988087123096395284023250570131286679553651513376772660101756082384366415809946480178741467528753795165808828042799573039564247415815401475538820779769062992754645106528624743377874802356132718523959091613338469409557314256222486978716257051739418803419457569038884941911753031135858461382999214247137861125466098695886484237172133517366267851214955459234831134741233188172235712325416406654033675862707686681957468703526461785634261216915242056549446137511320343930384850542790603237965529249762494637532844228009971502923483296030477895622825491750989676804506333456763986882543304668694465514304236543625221917954868948030832947960143351583549923852849569053003263678626426536399707355915273192216250629978600889703773264412457626499064851767169366184977925003793267456076223616486919757575402585868630729021189585861285615738882401045082697174445989876314655902829929792245872833952491211363128560113038722030639668421837675534261794037509587034303658089316866784406658999938769467336448071763688413669336366570652713004180498847907636582742186667564811897253219063959268348709414992466402369225455606084141965996856750697395186686157646791125436757768302747927423543459081032448392691269076330189913960511651954136334841413506197761490757629521145566980422199189233283969823475866265485703582497682700760634616491314806788759455550387241770322989302990956860060341845677852131361127679434311091734998609040425304262381201942069425391404702696950905089109338168453571983047204450021983262455003802673006177746226499659219361706899143736925069045010979426737268020882380058728927602375744805403897901397729159316120290220942869394032623200640823238990935629099556846114160619701428584824916088704018432337477243511175523063425532766311247340918869994656451118887495767410695849259798424721231322629218134746079583639537419175537544729884771568135200428448785440055335800585129503051888035865700705078317500647666371401242836671203415655826106389259697748607902800561953454729814298488583311274367452355796135536437661587873925451755538125804020782209694744063257257498552365189085652239317068616924912441708534554444467558902713066870557919454763477854850660381495074970034939791396502512285568306368371481044075450022373779483324391568692981886959911585782555501057637686445193390618245813493263390306760687440654931828764829715934111183036346396265061571407191245816949861399026208515811471798661310323606382812701599018430573924625765843345416280120131635005512230345772615737964355577169154768238732464447238856465190580084776750769902893914441965216919888427168052841089289831173733008251715686481553493269551451470030640624718279955713498065887689742809030017039439950287700793356062112087971981269023233252442010003480675692553869570005377411343569873843385794398034512665076129572864336047605751025292155548360280263881553475544913967640113673991481642465489117924775632254511458883527067832596289589863854231128032384288361255955074361922389074162053284021615573495871462969732356698505799894049263253954195677557160751225188639535165239170709889023707451575782338650745058328665105870832728091131332659879864500892480351917227655378837017560328353925308849083807870963917665613011767510565553884148551366753915408584496724220632247878922021596176808650372266703338579712601149910557673540641577842255128352721977073104706158033894773944496390331535084063437594259728810680365232853586515584514804700987212173102415041170001755329131010524852496063662629711400106675050373686102022418468497729271933073773335600317090968611532411222227925352805323430513444287678126801650180847962895804559987218973870061912808803465984358789671365459792195431087772266432555291145128353244078763342934739893397073136727683855591890951571194227726777402371203262712410455844545961541515004043799674166130264087909372682303835289403896422853735319880143137004700268385032303053317476571593391798433490993611293248485844041813996966233307204939282780687409611758255277298730693056258856634043609250415097907956633695190134877392894124226749628308220360425512209908830118364316136588764239286030375709145322920194771315887560248968143008267122348376238658259578939394259402852159613644282643647090549641356256849542896702141415100421673962133048446141408719167422933367444148169241198659636554434536249100616773730808332872456504181400978157884304966358631629615313107536605867419475962684520334510790116611288164762140715583443889906646376389972987406126807313840546011650411320872853138194607454628373412229118387766788947465825788563989028367091058044510444752047045390611033775014594589014486349616761550767911187590213229173905248866446574359114570617405214217193606138995388473855453041312733512521275771651744793790658525161948949858835902513417664418409783867514288968286272037410547217694675282345433120077233809646737731462698012200095624958868388941402820737598945304696532278118030141618435219521075229912225879166724662200986650946166736683899179467721655086012294516019621332180098502184642054385963766873568211597488685456696447913083363736910312973497532596628505455991722939432925338968671493354753528489031321852213612457907885000153367705405730188074701907930968580205668578522760800694834447648896077356966731584287260293655826593036121661310616193613402850505378026449374977477930503233019716225779398134338646539441871590225174327814479518695701260598374248535076044054307649668579929849017333275608378022492527050743665421940946884463153782701344439011637129084306605543789908244416085160426352926200869672297466599359390608847412836116026986554925196130361953149148448247647488404130980941606962326161479067213090732989520241913640652060105392101163214491591699376869493312644407518287444918118608630302114589214644238712381707038305769863442307531223988196586189583469221396257781938764758589199913879431893192126214895555286294424935509547209883783772729931315781619065351780965515926855526571285203180541796878996957637378041037422965676346751336668315431359092145528900108949488599571005290652905304236946796749232425751973071213612278651342517322142122452630768812749715893602114315682977344487513474083619880945403956493999339241751998394797574501197751647817560864217863285810410075898436511113377999087485060650791857177808355770198911431905669529068411454329338473205349269460386465415937337512526893088465620819628131946294157511888283760775336482660107586753548148111118600719000475194980786221354050702985697451375696197269979084116303379266072191013267170648682912240942702784860948832099620365391163687018433620871657537274437137453199470951330823713335484699880121796257675995535888568625110665899870195306738734143499428681879324788926207093670594777465696099369121009595854393799917830531579210979162806411456340319056329199725399778008928458663285811872569688461089968814664722727617405708877234690953864424178500493531375111868304315503371124215143732236157070791710269316860487074344573272556812279059474890701429909321772662744511886914391705546828406961231869641774573908930695479639357409828996944907229881908394025568773324126759103239091964313664120122574436352763170516966414909010268895908848580765333325137494652306094255408516939817487963916542092861917140799870921913643696137421763641224194337392428024404185229987035181610576310145602903432739385739238355170272175007906823482820445597769311438619387207826042012715893361079207496710303705927289739885558646543638822068890551900286994608737839968042743600661657981743738596504356879868160540683748520763648867058584836105691503754533183296567530846134164263019146344973745058548734675822446725695946170693322112907298204371812322664797513146050736504837771507180237518140720769410741891923726397424359747819261639966857093736786167245963189006546211610177522008171301752499970560796992490581242290057335625977941035394602158213406987271487796750712457209807059165964883556978923837621747264777998048427939984222575275078816527726913167487617898455231597273993796578595591158835703264786992959022731232693772216485632403657834298964407762442135324141296105082260604022343189452749242476672013302295184644095411420233345402052374909414066985445079200972402987252178051963029476504592385215436051605130651524638704158780633483917477818713631905143522409159204765555893684760459407898521174953056620807455349673210535946764404367027655876865240184358563271587681554870171602515847770214717972713541529037343725476441992588023260037348348686652379709671721444053082046199767605275283502764470657855633992780587027966541048991301785995701025728494978303292190122542269335751088761913888668937432985581288658949865726935140968852729372533294075680782137156347473991874627390939256751386774398727822703278971107714777252301958334902577937176108565414904898726183515248354541951447229869604258833480681819679441715188009795386946953085325421960226057090461417648607508691646299834117611390867508275353806304256511540580342789929017647937202833774795619692907341932215577887926328685520402606823069481645402455459879042845803175363420057046851031805523725224716150405409737041852869455461346176872799472695380126480706357752860867908488482617199351207525565655924070068053158603297463285868612395323001069956436705367740116188137301298708977088813751514337211698224904879702101282060547959070521047437140478450151396451075365222673000517132052482783608564584711729338091547536316874742498562958178895450272986462143515992852769747673995603318826632262946094464976764860402540385254977242712462458632604762461552696798662988339095372813408370236901274938526051077668218904421952852944143281383309479283270565634395532602242285680766807531278912374639408130903207813616700996331572963920792825171422483346538983377224639311813329070356700845962083891408973018609617849344861658185296614207708751776132092595520070790050327495752908899163477484265099576527831976246740119129236238923056462102020159939045537881521593386470702992292492842825706415794257414525946862061333668850456206855351859166843014292239189217816375792101085379462888785114713231387232299081453513084743942914827545145821293164305087449410507404988072871339937497749568242414718394561609350704975014400665308973732666120025751202726259355668700132888367943689451890156915619632667269224792463275323483135050563254613550026549405742152968074621856603318976761269157094341493359187401468733532794817968309663069049990705681951472542087996783431323437564887946839465339022607261648841353336519256523319011538997408100389489464428277466650363484922142148393625037880979935659332015215041563455890476350241850660554181957376297659098747941724457259202595800178924038626556692737202248348644460111288120551287486273567352233609714539871377561555576466368330533615472442187222736572683982633125208354642341896022495248835275262409655958286562058180355477850264650489369735450767062579095852642750732753314708340171760710964670830809533341307109741516939895699107278195672995202784833303650313037862006333849488619486893421678266891071275271349714972921320615346532158222056930363081595931332401754165579464781877696426580664420252848973097602775011874152877859358760862640275115972012112462248038708835780243119198385322619135410841021322327516685892407646149319585908164209217024094725874413056043105419478274250737447448792634394864697927439852747700512431171588563178788029099906654125589255440588505477720300252361774011077085299240455904878139672521601774481636301729492116442010452101538405118872266372476365910645919661723267344546932427521394205319674881207705691447127777925561351529189211325174813431673668913652271506682515409270416431554085970705722276145592107590433267455427860275847782972385514923688703706303830324474924254729700767663560394900936342454102544628436020052244888026259756782843098464565244805138741567412582126914860847680946994065777519092875735721917710720177552245472933428961465026707763681886455541961531861264723466538830281472971640152321929723785938826362924376429291463451499483878874695439621757283536142800483033699494442673693624640401148506250086337916732689406200171276677526871507466743221988938866028149142230482078878506188404336358954455826084435363481237315758274220105587983044785088253809410148370253043293300520689229865061196536435996429476846820374383047837650792781219691174804152341781193281427096807958014024224930239441261740417079764478784061406850371589454730708581946650337284002036897821761102297940543512762592283063674753657783824941984158473558974095422477051133898762096414454313749049562855477191942494454167920038789169080150423093864369230501350666686035912532419378228421493784021853532505366496072525778991080145677470245167979903795576852431155043618260065030570422035987808229458325062467851288749683226198972998508305289193841256185318675272475171228538959770162318561867747603337109985666768432365073432323970785082334979011984186328943687589293329642099908027433713849712429986679046731465176119759920771711077338736020523139728282749947060242537768564948061916309588848088811317393136577156593445258308974075952867589555059155516426238954387518522916120419432588183635284858804422668369625974489320078520255711032820225445307225319987868065254152243623411534999212763192865256449242544835926710846953089065944473157131748178602016162990465233738326144272575356067025717253517842025207211478866102129979974687622196428403206730437089935394664398418524180711197315596236381073701717191555313178748128374519476531190588140644167284821675389128931598613332384156665370014524620490496335127512440950100097350844016938202570541191253453260257714239243283034006834159183185967494237378759026461863043754403456736714748070314672114040643742374163973430124643970326562439942417959786619519226109215963821286334581703258091327641010407923840333885655816940577296675723917922353494310466568367422543638918666997645334530101035242275060071756753142589020551523738524960680110321511209305082161650302044029423435864169716476187315129074841286033335183505459766612144414426378572740626257408278250269665329015801056931788362787995719459165236517635761975085994978529929304957004254198312785000333854832224613800127902061025579265828059940915012014325463842369111402635892423899742372205391333823044056223126046242017693701182651733227658701492085220771035341862545922669715094924029408066325959355446486437713410080493972099648793812226844823955923217262545123646272862588879566675762174210364909839496833053037876595082750857840481918517202435627499118433739639574378283208984444952448211771693223091449190849199629277173974354087200968636559216435945133555257393449027665801392773224814901008264583467843210812253948682054137195768343302724780739129127051254429734364614929853869633729804177738574047950343310663439486502384303608707385036938451188473898246699871779898577025831262109766026659984520552274710761835794623495622885336788289752460417520405576174579629980901709905255335276472260159932929637863221037265251296024901468912093579262060933109583824870754000662862667590041653900179127469717431754562447315450307977773232349979414840142108431313718623902877946702445977892584537543102082075561615329902375666021188750384295894358626322066801996939127635805285706446539560264001904906864652890285713351857299137918022960790556252805884789541982325234754649460866796656489323926846272427646620362485933719919705026030814022035151325094062667570382800524756015604030549908978855994695723474064735365684642762381227859457876481734459362717529725279980235979389541820133033391474835358970800493669267484233813782432750765504919633624252025566448940872696348048641719875018132592078515153156316603888180393902196840806318215036618025876350816392524270986825233032944488826649155668348722269483470388976423409494720103062776327867655905862788571183023592219314248644576192517507940802532482854402250430798307138511844364173930166494094052482740765189218064109975395859281735577522384129590994749668918760838921805846883522379216064074258499007350239053631506212176376534854929805719451294715086423011301839297066249228635513093231091443476027803624308382968269479539624929700317987306683354012995071216390230796566239931903540377372807768182596921043863406582614100688677395291397513747652526314723543994834423732037342523001336710569762015893840807792401309977797633623000041190079886998678865592403339109069449464890506150653702967158624085424987431697995490999124664195769185521440885667804914056836992905570940824643050585996618231360483187248840541318929255619420740711396414545456846665849447858531145439056726127432713232959252423321769241572519902316419916363527928219966616322745723551847982981067112804133312847184238462553223999759716252706078996096409225116585928870672949627224415313869470895522600909886278645436011851771251062970246434550035977125936131011434333596046974291431854781809720265519794357357444873695176957380822552196151186771743089698868639758236457758810858680434602247327672108814170780323804782721032400464342742993335186939645106469612519697754006409090233341337468852922706942176828682313751371776454519888516055860088862030581653522646251091411424214139855680060025615114638408539934624454079731674097877828691686911578011124820422504076184644027535377915390273301309261180957193808779412313064917063760926965779346880571177341293827811959182960271877844639535957677180350458699929230357430029389251159595420915446542145275215678982013780514600501118517258675207730417165843173377908095278470557474875395657328937173856612724014265075392727268554010018028123761402762464190324316163064289988712440977471756527382143797963052526389685299395599113454447898251740142820415413630422908277738112344441366086021802784120516816570102050372201920004632398062834446922798702395223544900771034094019478388926348665643853075959369864844515623911736591976618649330921809348250859182778742088442092735880738620179889203192583839943889841054787649733126015644946716593609423103564634175088283506173187646601075205789047325415962696420605331700515485598176184896652489913869406824321448862231790436976177084127468856255527231753246071893464882860116391201415898892705697421782691789966991277620679260442969530810870693120674591678310639301137677304087194116389698948723680815551933701895322162621027094461773137663408149006325558154088149692490949245323495958333475470037261274253599430403315191725616400851917809238767611178407810642767301739709329981604474986309448475540654161543917735400012251972524516475052824994803272858470711032172058463873839722437943083264251897734646657377052196700454265184693544061469848876114157562474738006465163385913942714588780258490397149126901380605989592183522983368206386899730369416344225690757719014045864744259525920918828296032530112721007772899550665897578167716064881191982713096530912130377505428619114780038768347656173320370721318523941603854426841212705407267888098875940046505201370479806732194424610864666058764794495667800881422417333854028669230339309002084725685539830194908537192195644431815076185625849653460911242480036362309381012919017655995077497402180611583370042314128883740030878177035528814839975166805264833709380556627432517069313912860717681645147313632160157535272355438577308326547193552882180618798727401232106827974547969997188565030814420460773450220219534223516212512892183171374466295762553197443249860696092810464759352868496805492003864533510991763825582921388642167279179423545187708625744943402385331145336148682210236098315661896813088745130740254547520672601792661692813368414132138754059875949958841042775632657474420336784616359158462544448619428462184308151387648572273832450508461280459265596935895334441882183386870389711183148130879696362288221052175011698569621122216532590492499311123313579069937911998194795598548231406840893834164964757285205592085082998603987527105461738228985878708281477286372456810623857490849196619257008041629223998009224159723356510856653829525858180957153675067318803037199298260878463039396301031726364123411750682236031860748007242262353650330577099309775222030693054841796589721567150089124792932757732431199690607723133312033395863954299762710839735410021221881132071258074545985483996486270643060900545937408353949509337792749109806138436820327920845892950610422108296381610132155905551511661030427458962923956580104567498780846103444824263354358308013450022678821024386149028003901964129938152951609481289982082495556281856397871194765666284685398247334690836068052841338015381403390435628920930060734290195647773829813932030525354116001507259500571747631449803880686324690608206744720732702574881355120977866109041337813001249873459367268292110525550248440942536504311543783623885119355581343824532223800006464277153358005606048939348055440523333942936126704207379094250007684135856951759693144563298254741935843690520872372538241205169784438594473873057679678813811782522077135798580527697804986050096068826061809726473203648018568768180861966350650191133179373840666123887930495582712585243801679498105030708654960555422050779247630002629970413070325601487408325803571519172931191082430627731323690939564005827271351583026206177898222555244312242213839349002091133119155610618960767070176627895449129262812873010312369949919719092520369065695984881966194306754891489662094743931471801507009095234967022564111706563103544983792366738309391939005495799856857956100725098755512956506765548221239370008724405266489912077944089524404210466475039741126536702599951676847695022072097091703984221039627501673694482547792208785516031153525348250400420279995601048603105472837008472653291213050929447743117555746456851685470675589019752353575177468769666780593029149481681416797243128427817707824444837214756794929032467564629302871165520176112309381714825182623461843906139862856402082427430923745999922327717604707068731303508159499677088427216500520386091758599437425145403952071283833434679232852336399790979896895120305295244999153975150072748249437276773940499206509268701759447315616569899298170943504991345120205072951197103145099982214722293285969176617144260580500412087043292937134930318534553551519270433317303668679113396423186694330135186244420465672299695194937605481435814058727731622576854910091591306445303734473240685403723986215905588527218461379234390656660482083200717682994942942816125209158193213373050738152846323169552606919862031677977875029372905174700271443961500904158530965399894804360494658644067141804074859666519278235327839606455981023621555652805379085241817327898236159984557458436484872175687910498330189388197971213321255680220789537380627312445696797265379208578197017040735329219365739614084731895749916130924520435798550115484968975156134110238182249239612548890408819470153445689378190358541365265796656113008060576440030879101566729587304454298534627816390442978074724185262476255778042807261921789673938256579111831711068878226305736112405888872423507189306863262471965897191731122829691698834199041793244437614762650677815968561165991110229136952549995188272212593284374432823768217743449040118246770508926399638423569561309586363006459084323766148300115812432868696145931120073786304242850378434200510170658610974886029666839202949096981236498711682689678613308230723328119034044280459836956031342734809736937177844430497431720591414067990026004263546994605894766425029706022822954929854074821403540746923424858606838192146013265876004384317738247146295322131688703478579363169055353126406995342777557722055734776954056819230985228365965594032797960961576543282016928612114502830718789133432773221247483381466629748623647795078779227258671504547057262332816209928326243397002441790437558223037055117005475677332357073538056041980184317692001187008454423521942925055716783633412269200702619357287259065994391132130639965468380167348918018778533133937452913985925271724834942291113636194161768061780148593659425023504546543458451969083448693074399343530437537653890227364387595766074907095742737592778446652270021014373636343423242918011796449980123116688412461797067645599653584376978975673592137084028143908612453971562656521383717195788011681097059818276178004037329275510936675242208020723920322351771672105527908938377902885201602294517524495734176092202119862925237477872927622732342084147261939023825770999583721700653322771841524656162004324560977418554427568756328306203757737972144957084593401111290952903345090628485196548143057334369228076766430115444531134122536387714801906486164433985379464902133278638105433485155023556986485931857795761353132911037824077050317052140351651622183745594577292582041316486047095710084005982297859266444781038627371243716601328450911719017227944041331675389926006242485416154846812581009031396640167163849188169727183372684662248762368622246957618009887752386498417127916018901098772553319297258220964655814682372760845706169305121403655043124881250556512770316551855941240006240544719044529718031374265794134224547546700084008116353015674841743413458518374902405158438878720011937471586953187321078822688878173616636793130958518119003320033510049042171633394653541489526022402162362227899379256617290793802940607728214648976836206683957265579011693480020367643544071334566319061281564606851992143985891022176637694927609429180697113780103606366954907437537085185645222659147966493500775433749952682856019357556145750759330599541178562324462459631586385921864687668325478801905567649095393272331202266324500107283744677765472818985030036893085458151304327314445401179727442767097393096872219646090144098082509704283779613656813928270683876011606549957933296037709354192463406644768830763797924752067749338045390691419078508244342126318646905939017783183998595065054551141393475649351206496743666565554467341484418391510327014918437666541295591027951180877783782695196143241644317623995637482501197374345377993900221750470944728534773670376212216398539229287941840528053323270537437851215961456296549330364521410649874501254456577034718747860326593957105426741180320095449101546991776764865976600497355396263522306143892725575626712930179281868984248076261181049005078502420715488534833571522705962554910466321994016803198928682481063713272565884745511217415057252727878934905189666645311525347530269169609707562689890538061050891767410083148525828982026710166121702819154476350031893378496687681586758956338581326143103653528753636708956610329800896716475963717865311270400887571008074692978068320226216033308568021645422482950488807084483744333570595409349558081686137018007101174447013822689580697007324216750155192269765673158869112368425631666060204323031401464845560146586965360830047920846674978072668713192004925158561272539231400419307776309299078901721638591645508596804824378537346752453172560301246742246425194507261106891679265444334793521008402699470468863502567451144552964183306679029248794331289749418560601572827360231388437602825769395594631755426304200686805472235557053854348862953518291407680438395854466566013000581621463222368763842718717385638396634067513027938781618846700533759863133277030699968768910783425038025075028970814140233427869374722237461919239031531480891579415348330130951324071755419517715497549315796256099371715920002712876237150808691362307848265003892283697479409425941382416097072474702453864297634270521375790450212839535217722308957400375971101198879075073530814749062777406519104602621400820149166760579744595364783701696914785550235355469200368869288676854856073192019985360155764075604319986609668896244816413766271452096347660780317095845578382631962488892912300844152259740588770374415592921901055196179481189947490270657912399133238293922861124486898397817117771205340363048944861398452217307007645808500237428587375425247895254029546756362717954134149671465356239877475874583133938226746843925432612213438265322407771898102591202606573010434428365866290646174664353462561491918708303611001274397302368029763219438158457377582417337125320031739982516905966011070162389023669301724010036880577075250366394877740288032382227652144840220476665160426151979579117642366990215195305254694727734372858740482882864399802877924870279927235910734493009449089699100862824910086021537566100281905966584432289229668634828389874139838362334499649778743408988066657001895542039374943142194640484506809480958945117535539100530123500921637189967927969801282603027722049727561678496278493869381975205250982565184987767995772695627025372481538270827789930110425293950340464590000617346882310753837119647051472931379300753849805869713692229530336791792902090586854898000214133639044200184173767948612579808790750676146276431891842384603667249552247578147019757545914896012556083663821872957835974593980311115673702557460204699640996646341872268270153203662101190359611822023679590525543906777531982499899671460677879570451555069095931989779063381096415783220444384397389748941769942363530428517258955515920529842046436215142067338257736312053620486964659936895832708224206555962813911195346985352733691947167930658122798875376462603794173463310036507887826520895154514479102655235370148169143145592275241259007322007712672452931998965659436674901490050004234046016592464226218399515742911409708813192611625829981448510312846992089145669335967143206465504455532587565845665847797909100063757648108172267065095687456803837244993824440097288689932736031809773729026791276629475415167125306163328939652680041717364003204055031579084084101046159065645391772417196216304215426159214844329048467319491914691908619032516748798864788578949023007890217028870815891641681436159886970469748848104525764027392277847428667001804198174260993267344002614701231756236883306597604610222587749843889650645979515648538675000703961580093357374241324818962936317860679342452937297122456918506403968827068023314791493927672758927125955378586332466469723611938589655160810550322778872026388182884439111085603783370362956320988014567756275353551713793252309140305372464524703510731018181459563541294595546863949042815963796148005536544433276305270961672705723198450726787578238629993296606314594288072105189550942788229530955007934055419225978427607107699027513465336195615234247403718571600504536703189176584366093908247203807183897813884093141775790236454738533091437821691401868330566035967078808957705079567469347498308113770102980832298620640727997186345948845151888753820723838843197446303394295068763559917624622582994600311334558514204407519272322622090214742606397318766899746061326981788631058920829746365316121887982313399662758761926673713228809618272765695343266256556210635846982564706274399150124364186663434578280202705470919246464236251914351171225405075207495056186697535342309906577898210157282052193591528048722427437794311440161080976297481972453384387476906713893466296800474907941563828229505962943307294070585640367012444620972356811048079591329464009403680162766971044327481166100987486530903512923645548457326673028849843184049408763515667096785553455509510550574076303629593005109086213259483008506008512671114558360353185085374248995440644543001724875055663348752492440309509814147875036262210258377877788946813531192982535618775223823157253550727358767498437300567895678300974899508888092872782044546247008736335213346647851158882896039549767050404576665985405996082264746736411992507825484662298925015419675077228791560942963452790024086279691531157289202268676587078771886454253369631451659177557394897879422939610925589722603296758215892396274514837343852157548380436594061427896106228624765853591895224685796200315227315667925751694109660944452260245851812511524495639607638459775083430151953269362337201213239694626382050747271571278443259784870015454211552873649843202341384635433149181491091288378537022295237714484033425633527333880116472502545132451828707289529042755953863893048458437830935388936616745771319586835746601552727321642121348177587504162440563293297518087523143414505031713292692298961720114564114479719382786771027608859455727869826249281581003555904187731532640027766276156493376890630014529335674557828766552534378218323648472695367770167704628522585950726017383198009906631583253094058058735771729031729510804632889967149186582007418238778291554998204099311862720945959109562787993941195822685723598286718245992315385134927726427325269339809454612947345036086569889227565765329352791647461476049897980534485570301004379742809062472480922298387588621697483724571001172455281699307613380319519830556308225853887654229790920047951508242848089753170571890169606383953296805223502077283983009611124605298168540997362219837424382848416755054806213778157781898237711118730125404997952922957032263513844616602568808366857092623956993995071290183015435230572994321911620331347467757950020286761055843548228746549296969275625293184974342921933960823844472079169561726375286439544566169436309966917712892508998112006032464214026605666775936188830191024390274378362343234245255853274099192431111380249349765104919684808981374280485361577242132552631324274900217351915872997728643425523292486554691425639635156004876388946858777896876424588442214961193886654147449990181704502281587243144355749675218924601946896098233373603593174219760250005192664940821799639567955694761207725642962054264467552986690862873802372242078974281682548253306050422330713768025202260979715731588827774375065231430076042251126966162453651549452566446685670841027858466335464883595705912192143923784993929628037877459203440553618315342164464395895484320915094800925254398715717862888591059060886063829510304527033735716359996385739280138623118112634457636463117859391258499302616102639075686089547410707644344446931136842767336182945376142535652805246981302201091939593577039038419634869754571443591345004503517846221770070718432615122855394639576313326569360378476327467400310761944323158736211258671483234845758883798370982518567216061439908105133715372490788288624467265856504274279835528247903228793611165363265597778458067799260118878998789368480217821631570913588945450400647072146181633123195915131695128329868807519464996464692421749536710972715025808171202570574577457023180305182114524585402753289898333759959794428387340962514900999782582456053773377180699388879433627569360209750412691549702755847483219255894892880702887004430902414961582315614539013873189175145028947232805692905525038573360049161534352297296894370749734930130883851917863461887936987530582410851937735551004080504974106416665542599897200042205387004317219239853461228947545943363028746895044265788696358280273452150389529612651625415859984430905714847911604916461201518362563138228580625356886178558964307078855694014359053277287355541012591392051784573779042835742853782763028808588022102908456183021869749549341341498475352384341741780194983166849629516822159321698846473680999108196957017033572668461978700669301421497849268041754721363031041679216786583987592322959811675915331233630061734537918065811142999086617980887765311823540616348855318911607449235276974259467643066418789826054242351413484345514325150476934618668504443005114727613158737868666873887216508032428703539115273268061982821062450011157099380578469484043174540693032701818673092666705788069355790700019259968929914239269691573480120266828791752057154819257808957117177876545656377392932746115930058582473022143544217975403191297878940225669950321386389278891833018415226360819351607711128179874426180525416839758121483500668375340580813911195725952341082908254488863185095807170970369317770527207866679630801476048299030855920495918697853385857391408776808465306545047176537917974549708902645411283143454100223436399491768127381452307981784552040145739472697498319031825412402097080696517086532572279031165115000793764743836899254918509323458765977142289727901499198889081420282889522338409559348369316364267973914447989735354317764786259308346226752013929095733640919371040912580200841140646616569311459874575876595887927092424463909882108859748870121614892262086670900220628823063033039624037762420589659740553295125352945964704107012943244204581965396440101815780623577686731579412939285063745661245668403745431016485724868485409586364512013690687825361678734098747763333908507957436912937858106079399670052943825078527802784379945099869299312833900869294909973018681905612577351352534849598169926561989458344988407492518962357554182713992767281161295224700779250462304873976653958139627611604799696927318936994137927257376839929343403000004925308207151696958335275045251201829551821353286529387796852854334140133061461067289116673447396878988077067027217906940884429213895399588250958230850497591808387270828587158358407106281592999944374418810922866719883706949025282351730911191449780833986075484117626418591834098874886294811448072944706009065634590547196403560240346740121535965351094180442025512527994705187506194806475198526651819142438362869717816371234741263405524556914321495078692096160977623138768408514084893828124846305265963493584300365638010932557029303418442279690912785640092409309774874694380178066970153835780353882969534249072320701305536104479989269904451088037974673360021747394472584336323351798547838228051909258928349343056635853123279707262014166408829058925518894537960414914976796979875134394348136440908523572885797447055932019934809138208161837678784494353943891726985202402543799692810597915027737832970730829447703058450801599114219134538572621259335752316122271514262828874295011496101017213291892531059089382683534109206269872794068652303934466103938421078891643762534557988774205465360197259177528717883799148826835207424351085262591086512290090869999550435360175187990335572675865235468959299037355621910476425760290009309542187568394637458694892103955980819487876238665836798466387398031301356221451910000270631703705372049304057424985451126117349023082843424882667477273090226373702683218631689033194579236447597780872560840347377269594766083342849681863051755087860054469597410399428985465484971814617398301125538369786766426871841071184393699383346594375372267667134595294238041682130284695762968455653222484702448834333208406610509808954019533777269241058905160303125140304607574936619602938897109551918365338214945255593629817335033121903590285238321398898951265911029472120281564890242209141857094807305297710257964358131007973297241821595578587543226409903562294978597001486038053413314810858293114513397047537517743258566986782805765477851539087959979943471264889941969721422582906992591315456057262660928404395282194245271070306150104054365982654264620953556818409355992861773606288945891462307529662047114421974655284268081160553439828364625154437877915129354429977972200979533800034467084735402710569378275995072006829246638790778361274390718300011611371520303198245382117938894478826991398660614746593155358723602193212860736898277778164863862622233645884325318549723850525366101282911059808364350258116418378933825768617413280846571927227345519334993020527780864988650409652706487204729463187279291440699140583377685116646311380853385720216871298500703912583528014457348326616612511440301420768551527585871734119850194718673964176666314867053978243420763143349905847957915628171039558771028430582135104412235263638652733975568616092024677967657893883856376749642435147394728450349684771317337276813835703632184353866678142374679815682039643429359008927928661517492239566003949902218635582749672166133626682009112410235542648809860966059693888862800048911955224439930945413997655640338288798645025779196877686021684838345937004719802211011902209819223802513967875607013575837040994939650241134060058873684660571055595448347299614759306803772666141554625491242616645180873359033473134779621662504384332327874363264072967605044519715534142568040590971478371239593436601122362027835120399650051125066536962027967096648197821014050577775906547188474594254370143604548138058959370643930891040844117765545670730677122356790087614143220264802737986028911972979266507505030856504928173597148264465785157894523452269699900224509557263353722431761981240374511272314202547379005312609038850604301024766730778463012703127188493290729745672773706853292591363194644655525010641277374209119643057162360831647882312858130913747000159637776192481990535363043058215023292131991790342054325441343615138277130577155598188878759360867750852387223214790287146449865424473550780411526713502352547665366150193562576906678117033880825803500487946559523416763059287600658096693046018554361038207891817785067602658345623072326562861975758234992969274438525054332431777614758553688786556775223941611947321938948435233346289278645603709611503152211183403662102159020206810439399942252836416211110039883768243817445333788882725466612494324728957576266055851046465846897419323459318755894330863565849259574361751789943166073467318353784847066166824626788096822672686850860940565748397530629262806005765308598263515227611860730493397475239538712845832023475353098391611174159087340854799826993747317761554440326376465950977653914003423986981855766433761167616175596160532165549252945376978095509349618348363970982923866882980635889418764893514349182506253096167915316441954522892677849559096907236722226542642751599730882767278622519112114479601244430755918567364519559066005395158626504585897321065333165963775987787965862816758491480485674796456762463104460224395901806918967240343892864948516833605577398769271451428215232779884589806297609913179145174421555220801352787471791095201110937640826842915000218683244273159728936305950097297311165615155279387145913781424603764530103710088711302719385942191299237340120811511502737696789808256039683356738798008282528406219016629543671453900138901209518464971466410205639258805833145459023818740866999725604988023633863636582202907934347344517887765274465872008403060358624191162536491118291710107643260469238565975237317917755036206565625431654275212941861569697330677465150284417409345770808298442704774309134503905216666255276832418557859472284973352562570546231366852826417895607140495840304327772890574803040472823999538336708210509710899006432403661196034919874140932791544564896150651725753619834567399390973484411803107920852778448674116859353699705126642036727864559842505213804434414926251176419604441986014760534330063690383462164936247600795623185915307370146449259247456407724542710289927487350456811299756481751606126780580762975958132243027809351148782442194506279762570358682223150264467419428865334206519344484018580298281082101285338675712284519996403839629347984633735912157487579979305126689771319864715831527820310292143074720418265774972685882062983895083434270459485999616393000444736884363896740682709250344191953516679592166529413472353410623962179750014701907590583525843631109654201990606085063850428620227482928547080129073692551882700609391107235861754304968342874485695125700168891506781366350750555242702868827543655674125110896146247811192489687177159433552971480364732223734510255152237549401729844391243663983411946852388653117291709807126914237414849450068564473968493285942361524508144568751120168488953536291403091506795104689080504326601350943124827106917428984839717366746972672836025273965399133808730775589425797974043423142600102926970380795140475740847069212858623840059208747094284696910702881728460045608163835241903666447037421596671135843418255314573522509364928541520262256194361908676328142326333366033258942861769422764968607335716394775823304812008955342989577835121270436185252939603732494567548876172711436999285291012068597478030081260070721191461537568806465613778464786494535266988970249620998496043418171164698360051621322152343490930112569659730744027219594544928681359123328858324969927264540527708790963879016573937236892111884942934399241664700561738834495173323355221894858988507995373876496506533914729843513335113053561498103454283387461207948924784958464529068081156821428633583949603772422325597848775835621345282386980557653556489816097945614885083146118613159832778985867548771261089093717877634507792451099951375251632683784696628767910119664959040681836183148834894173633372042285065255971923705171397781684396012604992582001979500563231320085455786641041077854398323582340364228171778427435653254641699017455660824082890239292331627892227960465718654261059844921169724041607528548353740835764527836969090683327576574684174126255215374680693823062665972464716842208304471188833353376602391444315585302189452600194365644401733229335505207424939074924811288603971468696329672558814364431195852957798625306890374147647407420760572248784700311238909661787861523767277027886254138785016408967243112631880125091001469897816192100682682746574493235922659755837375173635245162755710824545184272857565467852699088158354215917204724159905550725265909878990007103115227323855943951207445961020132690793846045387914628837511378554611332051823527687534323449060516752871414635578734259062613789124654059892750913851064885607276658280738809453598638334552443625002201318502246811193855417154835188542254590067648118656215985615962409982947325396778424902983475129705616915873130339069165880830471400722157558230035789499867116384744722851768514550051083739857380470684290914421384031707484106075657928405246811772738791000505729263710710381228077139795462957230366129075404016162990368404786616266882195131617644162859192119230499084524905467460957853477354601430824476004152853156641708273071052529377923566577585300606820797840045570291668015851915839739440961180548789872341537115448846025092208808006675811181248673537888130042248282815212248613796933436752072049093827395803267781673009418846928777690376231637440052535159367086802155140806802603128647234036662448055533050778661693357824940213377090463102770799039561599326877196382773380626622651823077653068734936416151155594300343785786568310325033971752032791005436647048786045340998445241895259267350876039940913657759207050119515574213096836043177278356688148851212635754815600856275671027229946889667828297152276462861004619646251988834470005590757394317927128450541810741187153755765488752882674415849256760506483196937122940773360837728637935360232579280748729563255160657052243375788926314782136081043802101701348924377806058668744962871607517093922793253763481325693436099504198501823192678714067336384345543579335757719486933067094202555691525817866457547663279067912297504810413090052279297017966310561844005744547448395704673285353366473481535403664399480199138835409867831123563217232425281162124512354743595352383070411708672281978949362687671910313140122607389479662885863997157356269281979314391980737710635030560289444176543404895337613470663361041779783181600264902180744427715858274412263052653252454728420019012787338484131046400532360359052431100278577127703155958589438262969890573459472929707950686443691448531900837345449523618226568258127924898373162960759426245610723473066701320668869194540513258370851428291661652041907390444988385170929078066226804872925590737119356691452639120526813225095176356973060017371259916374041616835485451746334281791682761776711435230398401856807601436030078111208866730821635507749796842399188583131554315150754108170645220402872681340084129270095670938939165960029783400354953217199671490886929662983070359819405509577179072062948100698918114405131154884319119223260811513515723670517067705700828788769076890339940464863853231887169648142868785518453887597523172614783559678113583541955972017052500950009537908451049213066227077220588250283571655356306428449730159316682840535680314476769257973193152844159705747340612884164409516462675900416733005095939398300254801160722396358168961029196060552848255805745302000568853363101412752258041186672183842423446270500633899102920342661214967154500094376912789094448215214641950587273565208011645059674299283532454122892392593272979440069406236393783857438583447173232609610132142532540768128138040783632412465865188544779468820040786694722582575051425506839097302893268009922473249941227018136271876006445615127130413121981717042799621207276761003266771661809759952777941000064377763862053995390322997188318986481932788398542187356969922692122817755714837406532874802246424050721965703035481464484619135999940630404075130599715917524221794589105762407347365376730237144118641306737619608982774272580875872300332040602221856493930356884145105851045639105874581454983227446287091521430844680334792602636081093688314201042829923889777272386062479115456336997056739251837414712651748318430425142768232404423672357154728617785059018552006399052580843565670439159452039899752534226231476144155318636153432735047650239709752830943163035432554310461666163453690396077796183083473504398992929111109406922181301733183166573527470971723246701779837997138499451860574539448278468219862479984722788930025875788656880706413199061496288402820581895628188550091844989454836177416607155081146616266222200072040639253978894803082223472115392250636294741854016598573987275227097760131729717599012058304289681584494262222384022023448898098783832622689322269853488688468022692541944002969531663960392534271605237134055784912795250031909981822852412818837976056021636756669556997479682642950421678122209074630824404385127424099128027303494260997882300418660012302644213939436906279768770794841397093764904484318088275970060181267960678837728222498733819114208425527294849703576539083548019961696604539185254230853498032755357926244130600799269080070027112583860077334351462254568042231885026116662681734681245996698644968852019243312580046988485672959955588441605776645131508239880582683304789507764596274803094367190129903448214287805037133956429031108279501055058831021329864580563843689973076035301639084263554041079558135403461726021590083012753123847403695812791829871693182826519323309850973871500351861552027419500914969021956352357518497891536061741859608754980751221285383552856578107051246117199355078540444945355454906611586029187041616170233038227552690224546251561842724017510958756666808372096189041887383032689202634702480461193913702774597821679872612027433935719808435620198803351560597114526392334327942619059035919052577574822527267262151865422285267617550195171073319844505119599288175267603145721509021633714665509450062173883291545732989247332440691832211795537438187758009982820973827727466811931525017461108449101391839225639739844630205219066215049104137000293055948821621414860345252605907532475141081150891477708218107903170634658527952388003635138886259656429116777509661266234084513406475627249953345773349070040831654541281197358579383545349209119281200248687794154483254659925014639322195174239810950174783949892685779271934594989507190224110589949546833427762542552787581477133278157121772789561748465981379078685996074611381534781968303532464704771681469455971773554078838196062896536781458779655456376930649964527199262228620114318727303175074966746996660708581508183728910816353290113071992322479685708932063308346558679558732161547779030174311161493359546897213973964775205914066129871715734802269172101470011167188456187363900435242535708540126784225365317980227999390199047642648260357421701174249190076264937376728995445569346425448909454994927914405068244371687915759037293172538305921699300946470113122076223663100762827190684887027513644727860943587678908287242942197076255762923762674939428577891527287402842259070892414212938661587104198421048530565104130874765432779119640144469991712688119252096039873562203394615286205224104566184561176320579123279623651943839912049063104545813103021016011918940065148335493557514917807054038234987552859500961372678462171839511780020527318928599587189144816168477782298323357699800530482314310028277422640187931743554684418586012537116964994609405426447658350431843159394990017822432067477269968974275504006063260938186762096763229719823984806543829103209893023835128473295188389201599724812118376183478055075704300942906841060477424441150708266274315427182561396374820211932557857308552265949903809276217550189438768318720266140862153767439863398101627721050473590106924332922235434406120559401442148983970270499163556945794085683427588866855232822506264598829855764521814871909480012910373593034590456688665026638298141686196736240488603537242133579192043941702761323547133267524273829609365328062656695739872257720077455793170599899157502286883083300867669607155278845395533766245473253832867185025209226257610149451381665452440335729841906261846032347668030316532144742269757787715628543057980465876421024983422454206180864329774633108997861804915064894223504046089370783158032068739317994432555597203141253713561964332210273477014121517164309335035259221594971837076882890770168809166032384067020200672638269428223534189647667517311007305429339396244595495436361416523634026973270458250597470246783610569289943852610337124519759440791478131055796587908189270088706824224596605693347644570197261315330207592842504741532267322942932317147180615093917216113792840199933189719601481885077098036386778622618788213556340265026956935078583920992403273953904855742154100484643346214136454731258737741906452476932402541064707725251124771901765776205380137866975067518439985781487395578440525915991821419112807645281223326770819691026028751732828498761100541896876335842581666258397961980166253866669078803438310054244337120487908652568493493805568520996085811872415735946509763270659847000104634605133370975937568403909919657316676415567203681188661119259520425315501881057676057501596025177835739747775530681265394818595137960418389045480126625718450193460016526776620751818726528577755221296212178085331430696179712885926232524746932413942453284929538481464833583676388255152777923390002809035573792580055695041222904398192761804440991785573663621824517031516658461045306888870082233110139337563681428660596395268016078115267190036076475733237077103552255303634041059690919188940760691988643721217554078573889458194685272245457756301738615633521588610059839248161291161751421935699373916411341335874220295371710311881516533572363079120261817569894469114074015392013174474495637540745356351006337546927530207997896022353974080857076511093819532508824534259443255825185135187211127736194848171122611759934039475703344653018635131120195445506328370374091801993083063407087469437135075879774734641815811308194365021442065812134078052547296202881003958089628397794560587486831971490088608678118265929763407013152586442418615865114108014688916935011189376435987111429105859564428680468793793540000129590846092878685621002342535732669253328258374689662080610743223911459381487716270602234298613165812029126110531932371978008224414781405633491940237892346036424895584314808971659670902066593216751380756917239125096222432313914043239473157706757847004960196812222013729005062635436331214961878729459146840448023593442196818607683511616923522415158985228896753430281711565892418440436976220645063737849597083534302169922215416318374566528853740533409148049196066325332405235818644760081093935785049636197795627916426049759911781891970990953836243301771732914230360798194113380349395072886139261387517538968302830621737288730255041042062625732982079988881627958549959559012088909647431049011395936296707408768658963339252573408981280168579879182347865232485853463136101148927163981077979050990248042437048857802418178947127964401287072652711871351588763130734818800958159233041752521706986117851437568038511226391123776547406473413635865648650058688261548410294108028289430848635839197036669017425880912219885874588788215369434351329315834563477235365425812941825675931022597124082531616155505814763936856226467243220409506533803455420785495986852858757938806874675175326563662125281489015683324035905520942969792234886163886937854729446956995706195253087426753009815812938072731060049121674304498156552074930404000993630952638297104425393918093526991075000692530011023232022310929462876161377415960299416608075227911694885987808046646224900119012368898504957265668740203244844485478931437298270169398237843406390771163710252698024923981259042448802437829276989177179218180900246279316420864385554232018151460772416512113856772480643599766066356095543319207918094995425843532919769864386133722833437773265540850094454838286581270276348971964264670126649146038791601794922025245428831070697972862240657796886482977317532492250062089636372769958156103302448494151054775654356440821922098826447019113758279531695130268692377303235992644193927017246522306931319148079151674721544852723329312158689189263052324649105634957020374805296978034536906688342866364303264634966697417235658488915651408279063286457162996130170864510254768630015333908545098616971826938894553895781310302213550981042597511674668838958193734447819014930724632946878375482003674320956579208858036384299539632379007700296221218056928683547027681737477212180763286304662392336548465161564383397257667563328258023955133167557756363259272528897030797468138256166211814371620641861750046285650275308869322563120809055537910861624090864434196674458803486014006679386584554609983297523734190372048780863164210387311336176398273020843037321734284144333705661465236350506861135530616692091707553404128834377464975802141425572289097290419632270031484953373097306737314016442309534411899642590497915391017946290968624741210474582131870643334687284169173136702642617236604166718904203311227082501710713160376727725561468796162285271042764431098096579834931546111759901255766439176394433878075903313168360465383368245940054223770839534896445832741641492245261623255467237086303281947534563891003019507434256873711787474078980337878572223301168476075192920032614698077105820342283661000880297677004319470505642976138948696372217340820045670864799301872347535818060344782433262979334224414498801648952215285002058114110947924327180546691400818113625059969696590553693381649709192272003566755421960705340323850208304963155010642257196871380510400803731378489387885636632596393808474142823731903666267046946113590554352492178099456054547844990426114347542622752794544591557933279165427360873642336033640206755587259900659318449566405355452379216745396184369630704508353826110625300358525924120374101659134148080963281053334215700894315770512625127804700256967196975526486927640239590408560457598457118562779864125762241928966795577601259603922902024610510543038195105396665554250505046491636364908662301727783434715514236089851056188330333792034279896197202838118560907423089414285504032228498847109069631693106371414558634645289613329429771686415319249531482893267638814815889894121438413029063704703037350986145201262583917779881189637658813945097618871098869770352830657143639561000673092992816643867797229559022576404346597024729570811483349836488013505744013720390974115653151950947936941994318346470261360430912108551322861810689332098343072531191343980519768656525196952656752058601414357703824829374102389706336158690655524660044761575539872264874691161162176030932537053683523047896238348159879940900725413820092249604051685351851463235322425246298140594898002188379841950851407446017983158876256930730737714316093178378688563919950303803227720624281284015927593040149433935087349385837386643169812414172025726025171421907830241162144680927586218798361741291191610172973355263735855518837085403436125530349442259995968068533311565102591349754461419817150874615362498263282550816765592421578924632885131559157239338258630970263076546316607792494078102330446790721944425450507606717690249159164445790726880618025020020983019211001811628712099614967766315968853354011727121135060362203057271048442465855546744025423445772884693343315651046148110948100224185722356092172008456903341285211919814291669127668069646201295292639714846663407416205342700149106195437660149797266971575864945585893962045888015589737561863811626193123549470766103486872253342648876485899167988273117962141114054066656077850304902606046607678967721299332119340670827507986448327295652269046954691128571221893500816029214769284633792888996206886264681723200855926887811710999587244883230590440155970549093150795280453742787270841282792040322308760298487962623823988861766912433849740876677220084748586027584485684982882555454293724977626596021432778059413172488207858405336486636942346693749332536063060101639193208596465800420378292629202085543055014092432745587266593101594861114760633672505098712120432143609746945068965057337325485863166043385985334195385123705367351332409504308483046821596328949544527327364312739117579336501990129995522777084581622663097937368136395196536366810252206332090199917509159237731677128443327724857421040026514131591002853706339575805627749369450019664384794758588449443909404509169487593335810874307929154352181962351767116951744816149120631430068395238926879000510807248664857888244723144944846206111938621547800718737637005154302372618110563979700254958581307900715967043855751387670703896887718038916098791551546905837666151753502284314834507576004872344612460331033409022396010193412794932267293059863903745208493012466937968216178215797108036614946886905692616174978803921597158330812113356018585353430261668408054729144095333123297306924267158856291718457868102184844527039030310046017448984689684851181943188860768089335738264322166651891282497959690746651465577652471256987627829569123079576883678186049502883171265186484648335919484782138993262773416349915171584764400955580900304471376152736564077384615841228800256543114607225821549925400540376734806783700253717911665792435149586888488088655077078935209157675013148412484917295546329757041615059895874983588649060057314692836104526529957373520098775520366187305637179863783218897431820902435634860114075604528095654462009175207608063425965454823377763062092821151479840549782739026377057157562868078415516052650618318559995802637033278754186537814462984590423300819702578809013014304551880246536627805039125182940693887246543225040558161398661848964254807208189015409446365058094407307239202612301047818868373756194023548579939704175495103887211209119334231345920766001073304978605201602418917226112785656373096331003311414004468647025207172965268444014626813835427797998699459794058075821177417554494756522809463983337997832433228592987756634281894865207590579138508110921805720720426754574053012841833823748660088744695980052200098659657170653418222645449426937346351214749969572991316233849809684335450801346062808595477797218770617460516438431392315190518160948990206548787386790237699432611124013232114930246724153433410334820184409242387303737836754694356537291924377395436180095941161551333430863278027055261813997885002994773975688942932115652519307742825186391830375404765303973901166032458473580471504552471528272680493314124418948447701125254347627314652318148857670923457281511412254368441308938386119471862155305197522341766660287631798898869535279884279041441821125071836923938551047886822656300371559856870306278163368904329474919667598515324319987910778631796058799754281490708136771214554555064567945260618669064092396421333744941128054783227950563214493611379703170694084181434965263574383567726825342498325197554130574094752062223567471697609624062084220017405091732312903719349815494030793370450323315132243048260313311872790361409467507742008933705395530224127963059515831001971546588676884533619100408515814721470466618398179217728248243431327820489450635673383286894803744746450998775910181663157692760294276105183948707468528808046822468478548394031898437979428386115917203336296088639161080595999748286651018283750252682315949731926585213989616585230619883081318538275248282311205388656663764289205041740687700627277234490224716964706433007704278777991140168464301817171797267894111479358624699987220509782488798117342872454562469344842220142856873164873173033983063109492259927171877648075080925845270756718258432619275069859603812498857300561316109663766869360567242197971347603609908720234207613743678048341402321062750565820200433963204043891140162877143921269219503848653593805708467012774916602812559406650457438774873178823909830589094106179788237666548854437716159596662518241143680860301507201626373676991826424005062486945937533108473577399327497400521169640436321693272889317658796380485283302721117998488762387862601889358230188680096897930669078725119130886463122194526747676488297615985988363592856687457155619271539560673606524312419422974219134574174233577296548315524962654896047978669191665778036066264260227227467268835827930723170273913816484500139520887124237237502459295187828957709684928085757860637356303192833299656767881373421881360927036652230758201007768759199555166412190101203833969501422517844200217562429262764707085472582368318152780162062860841150661745808436993895264477534610675264891992050600712935345101577557210532933179983924780332299545075942360576035623902864271320454345719138790477785147520745302844670919137584166020967704818203050100759860831653102485523021143822773722131616817280846530682415115678445622769019707576582709701908368533369120595816006574073730784389504989471956895108512897154853311675593372942054077946717390757523826660207649098199646134686779663367298544145982629063889955345493142482481724897212801101780698997216168438805948826166903859429183070491914817737785602222408613329047766201807849714370547669638899873384297978335039642061075196432727107380399829780791270560052556692745171754013789220660257608851231844301296960589085864361166902029190452555099109213724992942871554231832795495609251588413039392861019139939731630268306072084672957126069219501879646064366922140718471500651994798520705687766730421226394497755068947124123056582055376622421548110744287827713509580186306754697494727783338143429577256938275163725806373312242512247267650979326061184353424748024421147627143558053025539347841991927152359259688342133012690898667565850104809606548248343535786421460881629585048087655226465973343476641614654175799828029948246075581716685242450022482115886097970981886796199848333468006381205557054221475574530916638852117701050019032633582719507636126667004566799989439702281787143463832859320059632754002749350884768625959776261043520709921681884574712454693962020419624499228616015115778359911630438106733646801944366698484213453172390849450589221857788579775339521001011539350681854231192312949366235981237260783496581367022455740854261297691923977443897168465304481144937403827298892015189366621681546994231010968378744201156648282418441116252355699402766257760448853147241282748875099686485091028594717182827669462211379115982204276538217048523860878742691934523644954643355225259519919804127268704129271984642122017567316325918342974110070685067051026378712838072517843347613621055615368777127494170815215720326289010239668232656997443450018009611216664086388558479225837340067761480363756343536851497300341424980861822094954277217401936062976828126887717772428834871930107542302637285641519148005527109067114375014930022022366373065724028772622701667926180361639856069039003362265945088754055570077986899128280215801639369855965308305963765398288867489958645534829290521154998882684010098326566225337451197602268798323012969986480695886947261460500641685148244655345516352073755240657690223618699242103785702638866114004668004019547002332633107228596847063052958653736542830162492521816853453992385514025555086707865511194230873232022052821922756784195773438805583005612172895162612117170507466726866187958464741151686120380583451332135492701385035332215081525376817172984327461712023519408840787745308548049150969695796236963002814421334885819602750937722855367238019992639965029769669049097101872550259902898601088422649746289934661469920795037930445760438911146216181704701422987377806653601488392878435978504568094789548884116529315266846190773369017601140051512798929896636890006471954071751869153436527434318643833566320405069253991548434133640865192435451510997632886811475281625418247013030573809138647601614901230032367360747091574337746644406318868098202520188399118621435004370239469872088667087576483380331223162131965149628760829425110441652643237829514675366032294226279788400980739587150104089658880086216386076499064417089460676273908782887872939043324888869876509682745877042822438615739140526919872547062207340180673748758839996939465804560301664374846871768207495402000651500507461337507358120507040922984552875483285656882804827577189052067730391917377518243171643666532320611626458847011680802776871582758620045869418244633704494798839728729728100589510440358392949396629231070765712552775863414996787339661901597863063836500123846016652443166912731649772571486604360260470216250669457266653765527036136167589577229122852993916544007007645812462792587541805168135553876308625021615836690142210571879517382499586760618267951318977295840497878781079976985707673141326372335494555803381877007577445302125073326647343211163963816573756582314490412465137254311464530973189246834606179050814162789637043520188267322439413606591169040540431133946343950224913835973607989409401242341827659960299525553970249791470286747861749325070804173299244735517863419530070805360600956998253441906109622783191151226665225931428618266291563216289198367425474498296188397303059748367715255062762675805524375977276634917222189376351334895929122817656831864347252210589127980129308068246998008693312825378596969966532432995711845744541113080997650865632749024147760580609093242513686110200955534184271021994337626767631091138891031567447326790257612943150784336063977415124272681265632988418138629186440376529701482643213225718838658514883766850317182235741223123739037895704214713523167361541006262994566660165321382916884120010782243315269011685291877313531514503612868517955912217651191863563176884568830413477669669461155890808563985265196077227851708747014062458309843981209253451813416774422488978763253655714134770294685475175324004482863292170047925501663150185636744881893906637260121645946872141861910807481055832174472395333169928461722877389904015694022146265627734423437971197486919284563548640356481966271570274026560710040620192629912236924113766537972300400595276666124083605365567779891684768659565481080278447941648168958360289309598760295126916398499684978603938006873580323854413213177788374066912572233347972028876490253996375094779296420288616040327116046760852694197279091811595926364837255319825795699829446012733184382615067001530047030900346413574429192795146050087112987784106900154345368877150502553837200778926513718921329008781424460007426058884556427774655457579984371220843874277145184626538159690562030441844072712097913738366362462082958830883612214930751174941538899467464532164077359214826309288403200549523793803195359954513035973117984666134422535665076334176770439630331618747557601091332047163490008321107066046551422364723619696431584016650721068705294987200502595282113036903524628554129499412547334108339526927026737121275374530420177379876104767812036300072860186211490934888271704546180350325617112893026049603208621170610314568537813443715549377861132610972272831954558976442830628026302914869794258612553265796838632452924068130595153232813073291418888534845367493238898774793511085018362244574968442328852959847319655501348279469445058962109721278928711355592796589622207686224765365232980293759254996520242577892752158980287618107254887398407348285379632112007543629313582737305115275994394670312682102724017279177445964949291312605046360819214583979574828643208734079034961134018186822469656596319777918530989371001059165319133597358365701743762678783197204331896629238767664165905581238800676886877687079714372958441495677304295503621361504975341614180959510236406789539497069099746707479416643009198366499083282921207411533630542392765345213125546321158622697448059166006710724308105767969273380265541322173306419600905304552423088834688497218098206406663754888246413287067622574936238091380972771885999910821178562283443213411641410589715730150101351293940834389319944520385211537365109095043773557987867616364463792975214011007025352077153339366956645798202957705037230016231757291590654836881731393865677009089477634674333973311093936331827708903595122629926428369669101031550469138471891094947966851065259367196593744852721521525326463898660256560407176095835211444786860133804081129029357479867705621905218661271633899088475552163978753359038546825216290129834156888922747624222007618253522871714770421423167277502349701001954873666586595601037533557854202846700420493853408645611502737683072921185709464736624322898162855132462276706558412766642161319903208518886131504507317216581963681698865116920017116110431629886927215124371089110830207749550790780144867558363858893105155359752211115937513597400639238998498754095596975721386028098968899432714462334690056969803217074050530746735211576034156876849947519499752871672998579927729739198471711224461253790640805737019855277283401082628952549707240838983899858759371435610206337855209177088617258760999216853840900951527982567272961093234891804199184923416829446852650920922798449845240810330711659660337732512742775596501540460564204302193692774068031415774791923859962073603526871130452231175697958695541279105996547990343975375964977187471645198904425225263121639132084230125975078338998876846954595657844641004226573314671125700957028014406704232030088874323100184903937749576047228218089688245051304626104182456453430358023203868146472331353275054646656923412794247785109741148636031808770764206264297294333100121600372310031843607296045705819017186715138690777978404117454854419372752347093716572468579355291650114856280704055662195536062388747668428267153305313548720778969733334402680519030633280142303374024968052360067069520896979742407909019209699527519321987187513123420973586745577114001344076000955017537333798599762946899674435872191598612279125319379171403543706548819907107072250209527774114037906306196109881122005324738194041146695364997249079562882050576828953574878609834357204312796436210591580516041169958952760984962976144696819097551092242861235409451677964510496954576120370460741623881820278602439143882819257006032015980830735345228508596591299346888112886258386866115910780824131613514107998480980692369439586785252213567983855669987464224854020918582650877310259230337707282051360272216413316001198268521128513511003526414061077788741656157278547836775328913502845472219294211216548513169048684843684329436787675455860107755865737681951357378757296911548107585707880655914260523915229648909358032196418036971863181743465094727668003233413376202341276201275547023357596168201753320225567058184249998668430809352124496170721427730603024183332152830422390949986371749215932192883364631636643825412881859225002617367814260456563183935418176502171082912029275344869925846327589382682160713403595940627333998698197281637241988780840937278794758339163445116231697003664927693649120567374429067411820328218238740400634532790211400536841605831471960510599198853666499560747084136646218484344450280061259774964618559338316183020574090664201727636739234463492683505388865623116037895395214438450480461901733150255646719324468914885046905592155420219214865200711387649528358043878757361302701384735880671465780025687533923826484603758795338891617567217826449629928092082084770324789503873524146373920464463471485174597971833255600477122268709447017974514194227921788736317016620757968771843852829479822569010856795416170203349485277095709274665217232779947550817112773338347480190751059232152349478577645819784568652565316954952323982140085366802277038991982827907887269731347012673686030885608219601424791835413619997761921999317418717082881167885747691758021141842060214861612182651557108595322087772596608509730433380046030597253140327598270374436333119468526894761860222685054818605311903493405407352120610243613863690647850864465767914002347621236083485856329889578576319291444070332685406960412604126306400062926506422609130241691958853913972259646286891845658613438856580527541277050594968282685717039621953376653843808219431214170494379231950842369651180232447584475131935431979307749086897460827460672423994372704864325810818612557763101100411210177528662348484030789745728528215198785649459027305328770164468795268590646356139287229447665541098538778185034001924400223628406196188695853454479251406760291774540854601997643051354486799312401877456619274312325073582329590249586124653102161857615855685554738911196549597186415652216714538576940237342866003091952531620495105094715500406610817571857920672538685492450804253474022307116526855782059575769373432517105872365769600035393256467922357657644755985591386148448528609565371507002066057757342051959232842014241140014126750268155558316389245043859556217282809992534516308816553035285185351111295148795500259128221360414845228029032545786901044716018502091388808804807113594882229126176849109582086421630487423073795564228303694161675226286686226024988598960438325269725781684956526436546609199846339254377230797481015205182456294740023299504978813469673858340510947566226396014612286532862940160491778806449897257415345910430763602622000673490954145116199558521879547209516297549584833661267412114536289980035589088441051548521990817000940723099465196040435195026725851152016271725634146366270789357461309158081412403896612484373736496066111174462638704383598997297851830366685558998129579813890896796452547029698933190250968474851579687941459892791202463270928834231553241036270301549173255175160360664890239439392254114528098125197165889121420664929405819081033317614763235478716017313740578513515107603450164367245422968779893713517135814774003110652268510877915333224352430071831741787937276201844170475595885653726677381528490003237378842221428297334274022936450050403048027225876093532548086755397496811086499860309313082655893124415730872240796746002917628820161685389928290109530130249938958838644392757707626535687651559177090637469897714823637426065871121441090342793198930828648677589346986796987770333577819633779307064659948654879572325251147635545723343715727866446844390212602860854017235747064750744447614180925494155984188977086908610834765996347452494704105759057150706742039727490171672068266947509343120900157196319456862325414125989558720367672339753213985843132698005308157820972687850152627075150621173471781818833910844235636735595225625827020818421939768995262697938508832471557595044771263978916553757602083289576306487517176577105289530468090564262347208051160147637746472217959064652196828389341096052626178738826276237263676985646605442082575245702854247280545003081718756592348757591667704431842884170118292131510076712628653802506605856277989538728892991940022827992068326807926222157496586327307439599170327715198130763657503429104629448158537006249095321127579953558420515907560366837700942700417038276146032644041900551500496570195136029520126836331728237735205120449497861530479771568919622743267746691321434475024142519437039571228088762778541010438294528629147064063872029661783229986214242570676040693476508371617575848631023844783824553193669474690556669698209741270030610456497723205772921844456498992116964653760009391947669805428491074773139643014949791907778920168894384481064829356509235653875528616228043479232722668728409553219884520958594422370199906320731000815565637836477620830215537050165921705918903712867009187273587388164492865750992469546830833904918520137487963079863507617360720024556462752216985498873278154061259310919064024503550357478318924497391724810418027582804212353226430090814399685535390079739385601302246890622333829225241606450876799563170050035479152709283090460939834198674052031361978955326554796265977486905014831068639363709127009837007518331624290685003662474183021444124370348732761033339901444144356437166917922539074581884832650303712799556696120688087855134379291742195145426899653923843655953544638912108045498779602908238809872530892101345789153668247190772828394491265747953212186680297365346672090910965444680993635406514707552717130036993181764338272110048540044429507223619875193626255196920435898911921978650177114997908592793473887849932977993355665664010828116269274091081934325243834703156993023067414419878441219544219239207055450716150276852459876225345952231848999347459916131329457263699465242652167624176703519343902725664605009870466132371406042974008048820341303392975804829529933234291030353045631125969638042657014966727468512151788639439677224093044831530963850646716293515892781218873445352930118304560141064501557311491926594060161327355421737455538757877003188051712652995121619437980851614282490777232535533624523368984666659117495712506498979626736635925521931288099498974182475114314490404825549208111674965166507903534762788289966558412856470665471053050454476042359278035393365500642157685417193957231229343406996892641731417224027061121207443064818831366131815315259422371362728879697272941897102614829857534149633194574815894539582600389702905490400612635562198150355752779420603910932462302306533816492663252150838565281524860813451571438079734831657816674444466554590100159707514793920084992143557846960976642574318623608242626482454645242477547728113154504322673678962075254135158776315551469165150733005793478873355586993608351815455545097211181954197431076586108601539953451872180796382126765808911515682646894887863852429312707462740042467188383697649315891090742191055418838183648434197813399199752509075911209726483451885654210569281285139455518810286940763913378394683855772750505760406968830264568460626366210426854955380518439478826466277385546569937347938397848601343522843355013448584849130973030039265227142181450259023519916552036831046303597942093016767215492424054871936810160387924441895924377216919238678278729678523607270636304745204819514672113156380139520512108467357813178833564075961042738201847634864893641622307935425138468474258066919642164217844390200894666054856299460358861268259321447053362664962015989055132297102005956977045639420260413777632995028292256384583538732594331957761295269694733060236946837139256706447569527393579224547093932619423751937926994530086878564751548067582953772238646210639138647994884113285822802511496506814717583536042785335367638695251073962282587060015110108857885956992220025017051538115861496583160418452145167590086228811459491523237052431852260038976928786507613975133502532197422891333803152138540704590055886960183808367998000336022566719238017855135367365018647019336255983087326587822332334722326857555796624968860088244599205281071055080457974873623665868045049663164756174174497426232278405047521811727244248508970708808034016334198396363697891675493918963575620047068503391490264639987937174283325049112625152854535761202571914054477804241548566387554882519212717525382159968661068965081960315687086976136032446755610227905652936571941726519213523351493268724793521703245260112678019578676590967952813672117758477417751927401841542673567956610824863024259241492006929678691644538385526787272698111658451706010259832797489236768396295247861295317870284581256652037306669942039717998324939213578066532046192869732049933773982822382852265649154749777766945417973048033857292905568137936185628783202783711403843015610701447576311048573446078214235703715845368131585896630077545003959923530954776070258722017896397124570783424348560590321726221980244170097036397698767455138979765368632673928637498427743079665980570479917526965152794686486967315044221269964282910735849197647386948695108230595290188147369199212067795039771602633382352065221031333956662087108033759489366872961219309378579894246408305317540621355837041956896686292988541322848579895180470709838786243101369861598669562057464063565803999450875190909632283211209725520466098671766228357352380020529958680534482726998013011993500283533358065996204070802763094091737272749448930967194946069402613187429835370055185284922215565798821587796742247025667648582131913075856561920862075799283338897860102518154983345940138584258611012869933768149529378441912157938259633631185007470069673496829437109497196157441044849036779320118007034330765080675657965713034595640761282328111619600875939919289607293719397971312057223362785865578595357402832972761546692862906646332500443351306689290729777857841690609702871184434811584382697603283667180777560332556988516304273660485416279976854256993069717674542858027186226509365074467362660187836435628912631336410500215948255035202284939374554042959061057080877183801842201443933398881546683473923564372087138076548794988124913295829360086054985892991356807617877877664084244367877283277392975843041176410178527843663455425438515419220590543350178906165569905182651145170172833966356380633195078702994302148176842224423329318964117075933436605951505340245022795283305096811047207117840799942406600233429588278141141516213721548922099192706486930958499109468939734937831751860602339684121967605277596689327877404869713364601680055474965447204264399338580366957649927006175788532836527989572706486582072096935984280825206781059305146301818627389668375491156639182019294708406704478941051671583563688665041328084694484754421893215585034298642964977187479980882731257637281098466349191246323901042397125716076101068646205128786084053801883335025753838148576198209734639002071517695446385539166139528102859783659272162591309975748501745726005915308467874329602907119444563094769662160839541438305186547571213458838608523419357601305676864667133830758194936026773353595207146827441900515982294987397478770932920294468952766565877285013669004220840194810653612847679271425978479046079924839390424938209500463073077908609412354541122937896241124319334856578543460439159781637898905673477541699678325644656065701365633672607165157430004365050657839274788985818339532480815672831875356691216448198230509353629241934563157507644142311698900482490476238650089465994259472454478338909778320796355174636350519921198082464547457928953492874857221982405463827941765115224376368604878765151418541440303428458713172722411754294453953651240591367180974260770357161515765424009081337837618161859788434564191638149423002531934778944327533760236961848365197220807285269116326044624681882226468345696583954776283689127542502660130099967667485892869960044537904726052952759615448640553147478084768552734973850173887822308448105163791079430803282195303282932916110385563635089823445326978207851183024598584950497631810148027143229008033851355444990501583855199383006978686220667604541818195805756124135133497943666317794795021982180331854404622062733218121747624872244799833740499480082019677964204636714440192716802272201895697668205247977914004398318499868005111731875420513139525454389245285768350926946999666949959781140458207014034632823556540317673920964380645010205302184210943075217865583689264693905224033793149411710532746629238034364149121203325959952437539457447243594747566481130390040365856430836256259585884768473469760742232655183868368598681825471952860855775030598708240009072035137689905208196180915419915044777732391826737378464272687192744991022230457399219886555603442595971638157230907066742625523482090035166153283688810628799003503347654754815165284957527575918218263193356514285676213327017066431790729007874759293294894094146703665751304261197091678420557708598628192510453102356442182994470541277609457143638805649053778831213536545645364583228613072058908072694832406359393994980925135722483649934874442419675725666287876191478544283041280812264051808388026951769649808182378017941200566641121837085130953776593319705492929825386835753819426235518845261186347529428260383396764409483437151122694268386202920939137651844996633936392567511878632905288525237780875237072125412773656739765973114242357897681659323720233708558389510098158705730938616461848535161870829882737864778838504637852219281729214559418499054688732720633362455247596198019132010139892417142494446866819999583701614590722154889070574038557837518455245550550978396344997500804663495898432737173181656925667654014927680525800166737050836096484767966831606952686178263133728421201639433785584273176900639674409915836252346300815378196024234264693626664776073158793858772826769953105490811357176818424399028897826995023654149432727544769858525462127310255744130341296140421126148908711137258372630376115824002945982430449450417697265747645890567614942729454096344733266037989089014676860282519306715066406861595602711286394313663611730133746330272487227918039469881905929413946791844670413023557896930166822972971010583810680635526182976118792963004643764274054744082641541819782025333058966769383312176436270815567347365447623536057856166302550694469374237403553402982466004056766254303668324169640082037139189418698212566792112513684588662684076161818539966035127604397448418175112056916559182808894360081250829049251836812709567418285476990302475826446064801479823647244986310569707635431698016328214926209520505113504806938760689174305732963846555756428446443192903597823587707149761085907188995158784745614547503558540719551913488449362416662477569702014998447975173114072107962153708075321716249350661396029205779425513998392044780132383734904673482381234083960144313114031497814499640706680781654905074357444910424915076745116641099845381086390061414477184092216560541970117215550579520965135695033446197297802927217438899803807431104693458053984838787618028665561242554950907383060503752407722339743928144008008806344100145385882999256849113246002933703906618715912716976043239542474171754304615792696498172373386898324460241292481017224847267288184863347450500431647976371357576186387323227272524660482812815936791245697784494095996283551547648145009323572159935896165079438044543572659316980738447307955305369934849623057075599217760314372414195894511116134969963197345180190297039954313243760082973896785860053188946949022307817252132531513584019107160491105432843213008979271712383493966179031981012937568282691998885107594694711530100435008773936652326400596602156696657765852379114932957400825783706072430615721366110981258606189034762663166760285274550399391643872001374244480625686882477488930589838276665364206840224427034581299241829775108544966868971998103319341757310632858390110167897122946363937196177873525653489112810883403790553486627309272390829600768768319085137427528808202274402830247547616228626224318509962879743651137364523269823555084305633186379424346516276770765204909928718190278058009250747131975741004488430121215493931447984196653048155670080854464448526859133080028959069324731847491693393163831753456564616145237854318008945318597660269581030564170542892283574451950604324821884810682216331465366674474103384639014628902089452652510353019345417339004730378216236259804065151321631563666258116771120328123862208262519434116937883507746204802915052594151234630361797362332124264856043729306265392483660632403175394789059539728926715054776913435705479780565978368364010587912163839915803209343053600144990514774873568015128766410086428151910071366503388233866888312627651783894016507075879590044590652595622777266486610746805339718216150817124544546395528055123721114926818507900913152581841943890236485966766309256305479541317637573006586955624701774991892080499508166030702576454907237946800263117419416062349677171932595207906396051802439492790658107063497040371631013201461230196545309888498350095303976286758511797123888860938162092947192299786533075069900847335984852679107791944034499383942775947237074052868732557224526337389925586233419928421283134188269701489151408940560148217260540783666748181499618220777564585686150773866022810391758549468346103604699707908900496834026468130324866070100922194497326533163442971370278384550963585297124325422574734785491457460648186976297996131464526673637572328867289829387590831417216103920426912073668025339156357537942820229839235306703137170189993655672350842947360932706500235666851044692972814047427904128896704839011256246803122718889110384667381071437930311731895895033370620847916744651580153103705416431507018956732335318987376354596304709480295334002361690592560100848769385096922309519864325478899463164095769109397982409409275698481544605420314871635985468884388654985345848720290894715149875194159052809515487033603087618034983295421526842185210161475862853169246003087500986441286339675340532347857185011047325353895987550075585498108512338470155472611624046831035976471288593995007016327630755851496499295345587194645145382899416727742821511080477285341880265272194975034039317381935700321435731619369119167201652847335713959051667002584856630067605640398397094113963693152854051857102602108884571691841238356434569728317914403646355549124092904768244407799744099039007714971573597947324492678978362677673727842764472149032083579901336410739053815190885740302063120594817738569661532350282195832788932753865330916705438348721816814603092090991046102687399430895791525520667307708355455137530254910929763965486430431301831024518621588937820258770791579335305293293049856438505161090097101342828991407099244221281650895043649465739244137548775053484083032351336961277776396126979149948407959529114431505400606639603247116491113419302867289239362848693414504628968737279495081618616842244946603146120928583108638141359212884311344270651450554153300100746325037463536076986397700465468216092392326608246282006113189087941199400189205009722759197022684566173008066481532917001667275312251114162713033958896336632877026293699120607414763011631674425467147244599387528952254460388563996050176980392006074911491038960568727543685071717058452715634691359045996523270896523639116746609115629793086012787902346800637687199581670759231684108122929893740565495408579895807867826991955350041376475026935369369189331098593522076513531246228886939661626431562275646365202258071669202809640478135864154128919214368082859878277146691392060045734294725673791627532990426583145762509845034671449417897888371567565787230071476482395853798214050572161227394961100807679036539611007436809630533578401468029853346932556467873346242622428848497803704370144953188346465792888834318669056512152115101819032606855903464445575989592037180157528825704976653611381097442055385988568173121423084066795387651891784882492332169838344788289092541776497602480987390110882009408513049938824113758494410127385853965259535600953583736187835982504918341359739671724369747197458817672094784830906897063091591903619838373466939562344593379179336456488411749807508615343283799624936949479541843314647867005945512682441205466303345737861813807700650259655822434153848534094442832856144992992491277602257783398216151601254841844660521331821098027941220377005516986697008283293318001160409616770306830987995219550689561797747284943099861069651425514788711852459874874964853944474298147792717742571036942640597026057594095760423664853548833361278775635680747363414291881258825569659353268264891236442324333159317138193491623591786502532184401934915888233400865041534394588285018609417206475918844572434367484380563205622929269250043035244280961261602045356028236236851407134004700522109977868681642365789707982590369704257379189283626416467192519223186926084198714762442181728633287163750681205462890806496851092626566204863118942510945847939707906777759634035662620890665843440599204740654072585990380335356578046448435431848425852147974642636027144261541408968665724739221792824124842800064127682803592390509680046699600830846557892738980674898067629373112136657275443092576042241867928811163017023089796013923610649435583785579506736691251152767838106895519915029767988919673531085634886222914791994851477457473942716704240252937476892251809546737177495377761846641822289424687025338036707625006159907295547315780321016398504258119041433183875148053297967247695557263950997820132403096936835767952077899995070136549743542987457276151033566016560712447854895330976566310468299413256353607134151185216235191233252005039660258594283299323108018328632725137137481393388561964513885748107990387854368273838643345572806672869005381012441339230087223937740062862212227679639240229354225270165858701816631753312291630222607012618125900394932508142370445475896771477120588092422580438098855855303871951889590851642646433971839912370355051010185334595907434394387051919848199233757907106352237459096067011263507151460934823516619399186750034165610992330962323462320676709058329440182304631093491228822643526811463832624230379548800613788961440173256113308467020472176445986788082248095303590699185820351721945657057442745077619921442840894384451193664364156979560076909640243804291184794715736651932105381502007677776564075204589632639820987955891363981774697370172478204272661283799076907475644845751353116931381623817048314702050625152124938438893897542302232438335430662009934528067283213782793488167030223396901301946240993378765013209397043179618177826142818867198141766044072750728288971153125210355497539029549562101648155907316510318072502254525750394174255426514828245451819560855009440962152012388664964713710827262761932336038193218392543932045726711374832993367748627495419810528156244469903231667394487703797397954844887108298939150956542423162551882972131953353849056823703017973869155659428468705614383887771072251314758393329854172001482457296159867755174426736729972295662928005801737462271843037073899725374122313275194094763913847538329851789173467835330760811447661120788394607538876271616003134563317042095960740867761615139684673712391899545061053966127896151433998346353851413410858317755123078644337668096127682166339117806670723542593814030059864350372943870725192717810962025398533663586642972255728095326016102303221720730802792279188462548650317136416974015732759264679963836221021067961392193132073515357140543377633215145223845723976585102650930815538005405817518586515698438870964848852638955616812385514590943778656226489487899497465420350728228681975047017510624765216518507734499853674758543955160616078923319860101762710109139079277481869354092689127337620727606185516431083332568203913182554274114887643061137117269701441903908131794614295432693695825057149990374972775882559841934958869479209232649197009131138813309978393802479770154828862158569301669546364429487598840956481961366931813266894035978099945921670456505716045060463018369722125525412065989291090331647880138723725946841845823580996803426239202495681824993561020388159737808382158665638639511906288009977305647524139535998958942058504656454556338141032565705174899275708137024064526391977820365361460942975412542127766511855739573176576541532732158634811954111092765146126225636198549975064081410549275649644093552500821756911366652134786700950157062411599588302784226591178851980884486434885142850297644133893448595767398306549461933096152231104562900064421443481524574502533701919891511293571370172856167627595837015901056726321857038565003913214403779912870671646278376738412501015919136992854443840993933675236439576179132537938908376064932406971104442097276027368341069465766612528735570998994849052628518441943124692927301111511464964225573495053809464194896453111381035330599311098099567785305386508625439115863613891911967480401912907794425813178545420514281259004725999207039955717812880257842193586153969128244815304696539545007358374622280831295293733862453258496812285684024657160867838163008379785856387837757264645178170419841388864399691546627981708739300890540231831660996657458628874378129947042741296406109418850017183812146369497387398795498313582035302200876693894579144602110570733046345327288358915449041372504085321348181080652134870018941816316766856858748921645456527966394336304821168190549403005373210483680542137885266972168893603205514975243536379373302681359917583454689994218139648581759595832124677328027479606826305533970535575665871469930924460524004431660897503409205753411282828813580503197077911163875704315588536455561746256621868381797077814476060522722723400052259063067716591176732700287395546572119366353570327617189339485398574557995798841182133813966118091141830280497930589219941541547813948919341623518376065982392310086317650493798621481008981730925470652441017692514057924222451341138798000552067075443365583748397885375232623277971516707625708004589181603788219916272061483926698375849090767401260071784841635534857326296256523888718917638068921973648039320384904181441268734718304820565561969064277260574009494097148848715442876065470561413241136953849879235663655475450208308106424799108336844638713863682058894492958075201482005722400786969351050222338111467737725386547838560060060620615198501104310121495080025384487052685284764784381908496074590317627867656106422575556463209143666026757152729538016029611345498846096245578957923559661333669223647668386745339114511565052058723950714591360243531664149343265042497503221477952407036412435629052780673534244946300984873966580912572180365975232175234897764780793969632939804542497423625963994705893447568839636035711883591226241931160273133647979988499008219668877049128307752805029773094486784666439510711666102422932851253329841518777838547110831662812572659870040035966054692865418141323162359064838956238562807036284494880652394789530439141969275904899293795319764348757075463628098018290372923203888049054658765388237065242276059719950088679727395035697113538903302604573333336276275844711494715629418344606528805253886967525760323334939372096869430210950726135836783355627542587739931444309861089033291120504346640993349063292955045487202055504427773731489593917314641751739553634582964711494686935898993198335217938497247712907721314565842187366475847923408480117633981321301093296107627373056371585733116892560981185385042752438002004926325618829485575175029811837392802327936321669796119032826117259789136855763175719977027948637260447695841163970374199609964078565486150733659016783443960567541001357457692050897124868956094826953445155615771208366793578021412176258340276437018915013390116291375898318610883210142593810047329855940945494998252587510661589335336152894897407878226967040059220039172198869867390286692437648340290792700585323277620513442111879866890756783319008687486320123032806409345493047268085461708288195779938243071623598431792326620555566419465703478058580435365475642079439066229278893918737101490323495042961868488729417801510686015555082899196039002309034370986679212823072393710246172693482985625949876607754312018904918482022224100503068000040925419814905750634667636888979783356341410054898926695637553131484679566957131187301695567017524703821762131416009795009576138446077816891893003492193868310440980338600508477340171167577484700404490962963167653445685370767092808356518002406336554940012169489588103996809519649005809747154118010281050385074653170978951106702454947221857795336861948936784867492218226402190732898737008909185671416934193765399612521337351130264324428046275357148715176434372796576768162697820382927974065400423256767856266655860251088829763268837228817193401246335225979117478188436707960566764181522022199565426747761446902621071323734532898414357465064315719655345535042309577622451761231102484309327543435136176201766572899359972428673758454038236989045936207623783571409066480913173083856761821385120353448237257535548971822459907201970674711819905186732870862547915546295294939900632516165628850321722191014972863439354795940551878700436348078773016974063435513675103507399904606844090046032607799639314317294918051146688568079314862617151511468109025809899261338593201826968732074798118626687686618112487756265133569224546395086556861538502234012632786580132276322994573712413260676153061789272231544584253236772916769202655952956268841560229150203841294099366128760185042240507140204630509745567040869074205305548449232419311594942758541900834799381258549431071194929137487531705444442559845956674684360446855865626337076449641225327823439323411808331527526627369813550159060742816669646999924367946707500182697241349264913707214502800701229140074810522328890429825612380763899214091291334734306241988380630961157959724478248835325466283064263457199134503451539423689693148708716978692443002629604263056049003275447997254464146460238220150872747815888574401262246977378116462541951946794194291400930723929965953889848623744742044213485705841153946242174943821402946409381216036216461059802391177318603185263180425623227302613736779884396460325965646682330271015423191674456142600576827282186840526364329515080897029780277076343432153158774553194973805616682253571248194539941599312314222421830916299807675398187296649540373219353762274788516381707519741209905332506697035627902321754847317305798380740007898572089569227108322305828356579161020009161661612406802326267483003273743924898985588186224949625217741454719969010866211862692233512672620748010694772006583763668378796800015371600379465710117891703726338044290212184464423435100118945763393329785551951980906909296529927952978045549863364327824249018232902373073987415031256311791500895208435804024380314594716341171618226662940967416694509396311236983461091388127513003236703843021346046024957186242267519698021440438468424988630600211273367597959505790050224150897923667505397424938640641319543059011139306593554932465576909662896565056644390580026137645398983334245982943966654370071436976662339048333250481315862446739023163248586965925016909157454680827562265547266684721419107841329927998999779010957472416841372311913194186393043798521841239375714568869671415754104474934041925361723430047193566211307618281621471482657596522237406694374251795403330045402601766208216004252802309377824769006448372122999898541250094765338691165472512322327677877600097340758601514853104153598682991044958674960326448179918680600425206815940412192912959429385902289345374369757551342675407962095949900350167432999460469705878308098387985365458125117549297895332080737205322023262545779769441997230384024465133771328142129842304216410255316444081531272224382709865415944328496021104168419688390918057018836380450647049515708391069768335220139543940380030737467500779355121190910223568799390948871792287663035608622819659403926406912749669837796140181774025547902254680983956591068819888203409262965313422245307969229524327911658394426803511935567796214577291698519364915207450527322862918353532668326011007994110836927427139921314197408872922384321232906806981038129482664400887231957271340799371302503842661341806721546461364534740935253644201830102616451739137619467219787912029643897662791636872042197952123756901182996988112945204697785413189341750220492523373515027051884258261709733168618266906410772358070806838654695744449536719211213359255254851000915984455553275530206574139583820001095856028227613943922807640171747735250673940475565193256131591930160353876870304388535565381573315468428463268848463656685219787051609656334516340554340620945679761628930812077454593542781805390374945023047173195413440401813076725079163033379433470488515184703687884615994789518853480149185626395998648267533581140891439990738937518260557743494021618132934567842509395768672130287216371698711035954846734408345833520146381356878612860739452518487322011579448385474401656715780440389057361488069940635221557783953683747274248212046278947322277880498340395320417254434300155122821471168852550263089425079178544711930096487123894673541600058602032891713310944902884889406982741159020074654966203827454225862539555514626728915249067201375787488797551753249156043774981543647501717287809029868647612980702210887015613205408976089028570448503667669911431094392282103961784273315055088656251173876125406607221003330928548601220236945701188851912998892209925971921211092613549486872499507863152231560098591369042407417837772639186602175451820565309346363435025863102499182145714464741291155055801751094955547829007633614696697080150246503656918790830061882606174760828811633223729234892196757964426169874935223578241956273850183084638421428766738537991437241227898362930374627186356635033926776335698272190046708357401443793018327733137164802786435642418198200656183135686569182684541801941132456725522109864458413885724085292793361793677078248103786501047772998824294978444047121736072343269632555916064115704474595590573939694395390582823217273703155577710635742766105109295839696649705002192496569554350444232107213888197375256728460621073523898430217065935428300650567981011733770870218006143010699603229561889521322514260283759414527249376597699977333036066627054131541423119907787344611264533998527791609954284642206227090548318247959330088649713604256138673955150024596113112912612637675409391430498866301694482680467528224530564534341996122324124134285422407204978462270612279188969813778738328173387913149968974717027469996547494289821270785323520103365190721559907670062548501548768798843503819740126369375074468710757725873560625428035321684033940801070687688909782461592774014965477842767592032729375152648313561004490763638110116026143689886114474453230853711047611967164257474082148221902958341396629940028677877234450960020079326393508462656865154165675432258957599623335799660803427103550186950582645646844556951850170144064132493378260328249104846578474142436888942822478167334699095266005805538170537754672141266933034825036397515896237082694604059721198279699756776575879854272039165943306941483007865478178252131098613362426770368602252039961656836403981278787628033519013215306607894887393172590432703641098214400546179341524936093874300076779399609890827948947311465141786996997327422181267641655891717343423196685477649166843400480312781101605417721142933627565512537934716867077980892666585937254556004326007671293628881071666087528504170865103179600591439593085423783354277742494187790626528181148000966413809397173100251368190200213049377705314896338735659385392564599713563518624436118273976889535427280357740681335097428759919684741824474188823935591702729587628825001492802812605217718880489179117601660018759157831733331237228834513440343608342546061490782634405845679498257469648332729543397524055509820461482552329102301821312336008951681015421406111711434564993997551301690792750292040501114580745905552591304511723389784539080610474599613852866591267668191850536657606635544035656630538356436282685106773326094658166135867013244144108696062447911166514295468708080272208969449179512675793204957793523353306722857903823660965048562363455939955654210133816814945068808524222926351273528772707044906926364623556826237836752481238575530481364257275791035956122833019428043290437049013353641652395926463081866381016029729468936776040304479453842599405732764361809693313946481343293241570603306304296618666403340669954082147884454405765723373653274085125488187846967781481704703211036024262978991078236745704571351270334479306507585259251331365371587312738537640204733999758574025881152874070041317429869690678655848126788082896888514589967069356282637814859560390296937101664556985876824505380640970482265041626232419027308592806680124765956987126290692874188958358970810914561476033481658145244705506404635750313606085111882416290582821345326819317751236417178047987936829241689309883903875270962675650013627324700009345976649681427938184707145742710894853733200662976042655622742212272471410592170768535865249777749710947989784443595051921684236964316838626066180109977922830639637652332129223621435481237612352377033838076475163229453471182611874188370387030802337577779501367744260645399829262761302810998855343178995861177900667875210230998622375853545100108899849624772161323251656015391779539186305838326566172840517803134365582071626582260977329055477810891548434306838797117965160083035753537116538050723627709212194140396977768788696305483327485137464433041892444515180208718413249451319937905395876162719000238712537371406945996149706932284280397319443196872118377640701858188467695201207377571663175274329682793245684863570252609241106419448191360037053308695390205313704711278397343504376320789437814828317400325928662582967656085412870819655025946535284231725057699742216956726024232647064543213643192537340020226440969551824825245521597060725205871601042873547769658802963340608355726579977788977372086307817702797588072339842165712624649232013560888946578255533079537937393575278782099576731668291849000000590957967412551391836484644232039449676822175679108718508942845622624933956524034087776722410539719656128981315518312302075766184053138529112341792569923308958741611225817227868432019726822222068848590949164568436724240848249428071875947890827663137009200675015392105306289264186196195774982899651221241143655930140753628006608084738349801919261831737565043353825850954318114183706914305347748430562102841967468152968781578977429971919383778685470099562085977125831538742073597183523440263058916570074245978361511269329995573922195273721378339452163687314498284481599787065618641005052290551573991616391334591269629449990496087266267640246571664799025033297389222900977826823287322440500313067284184789936898993846348217074187690956733918115155469210229010250222977861461255156259321346493991648458298350064639814026926103950417828621252906510502419144312897334982666001000279874989603479047050263903552208524241967668249833884138918293355525583189152851931793789348983730776623233646098181335903937828179053536663291263584558540407669369193438624217481180607904083313996857403794974934969136136351547934951985074915184244259555879702311481025564461786983753244279539948766536510944389419269409904367079762586550255311171700263166085366121945109475867226983687731343248637345206730816034198860244224183515215196250635710818139630609088736490128184062549908695403487718393805796155967911257195336294248708819394231107860982025822684542645404505658839831236626587676383351231083411102689335736401711371428073661894675618808243953583823087334422246505493934367315815960129091225360600210904824332451374404164259179390274471802407375723613930530548327221228565765880960002450751885980177757776983420676889138844186645800765001155951526814077334450879233263951466809347129272168006752919532463793642156952017453330743557692029550753647227970542978247772870603116849285679974511830029468984597826266117234241224875928068209094683227199446720920620133204901354750152621136081810742906048758327500953694762942143734101468444725313318833219252324871706505582613665857211117964421335500212245735825646170747830428698830339837945176064730098453790292685294728871213356479174229697024082645134387245841431726533922673786541553515876549356170030528230398675390378888112776766730798954901339537542594494322028241742452200710675136915182950752051140606352218067238580537167203024977016499173537190331719891510497321694927612938026435649171894330821579843806911757617700258100067805451517124089076366164129064525112453660547172040840821664711219094297772572126660630817244845014490819292117734017386184093237969972089523967942792752765916344372363464783267680757228178208191505805518911897285493080579338261826105838772256503199999574131763838626454848099497133076432405768876433768316070479839063419917040165202397983425268006652420274944151133501015525985580141053179286393072900741661215796093829087086198120289200567405317862131400273066847826301929645161066563999657491647117125186941713411622864327097806638066722065352368506412124520021493761999723448551475853087557928963107419907008508485710424301590704281994483722317617592407343054949870809477032235217139838357253930954158926561429585557472311554337828177659117571203010643158876271079283679738165539512220611473640135897961697941364943119451671611884799004113189141168588546031762148028567218004403644579401775352546268264499894188223460994893350513298815964212806009760142800527926617557433859329482065216207612464159468959331912384668997191788075955213413646321811184888564199161275418910744081818237401946576228689985758569108149137164551504254636166206827358881407193490734669726820832657687469174093575792028273931807330169215529719640344142239403366943257724393540345359520501805044111023011153304922519946823282652664415679972050644517866779634517402347702505948858089029120395657672025317216975348690899769595807159676621696177650657423182501399942831983137662844274841977749644511702082378912624878396467868131789788880939991519707416790996370018837780855510536495916843211629033647302937444240921130627340066569217927390121546932937816967214646668351804105851442312702888737230536706737659456362576766098220592458619769901941421681612875850351245038742992108426361851181977614180004483085746813569431575014576977603210055060175324457778903728044981490158513809704253352129015166139903573599962868389056230794609059803724880402426520494985732531569461240424879980038803194929832101056784341569637916601087107333987322739596225326736419178479403609529687552123846670386444990300480273140689235118211932409898644474048347513293700220938659649679702117635333173607489926574463554605774199877061705615960479887983857057478624721014007076415804992731704313875215505895703818764756059693943965445651977487200364860567641930924690908886776418898447311791009190647149913470448314577404584925149364432684553975383934487144401168595816832492757954378161016780321986776403593125804910160003692888369944598411935833114320881677650303621598729289598164845311391426564141575064068224096861789794392874490793221183156346699453687315164222820441139463990596970506681304448785308536645445616639743871027594046359666073805527811389103281228706849928019254392668251095824513158741385290406588499430558792535896712211586824103738874513732138379551100813975620099127371202719931406246839464700657591431928925301585771526676539014789262112767847796154056492927059633337831477823461695560995750846379711457742069754738514838595076582691493501178507550161470439589134442335464825767118940952102069423472269995035345484902869954746385145779827106884198661052092935587734779150641477878831799720543652868122969184078755900840651496429652745002259794983827380061526981413631444821125747665929075684050671748018915096602223327711574319021211163353515407038796510111836729149588687755603451552548594627737397258069891320106521276674579665162250330497123546484525654386080943793506008442760078823200187504526099426675525733626512336423184239302409953207525749685573254822499154377118944560963678195441898858193635185159392384405326396113573359646355098249390021930581816643772991261113887391118009547097522490012936315468723228323416131741837559203975140973678692155339894033493462973480743567438292327106090031896646752397156617064585611402363949402980190234799722416444186530999417386008250794729390398140411612910352499440743037889730987915799496951866223709998727224514847412606595692673495988467445163466433882903472321575142783315017463502965902209000092053965438770014389472621675269288424847526321123928007213190657400452040971680359264532660955377459210156916036421482618245649698271600591778861267048381048333467394204083067050105792692692139038343187269307583681265611073129817510440339531259203643732131810413726259209012296468526993848360805636675291707634367357781340841065036799207604075924291757104658937209872356458504426840305819017009724174290769347945870509063422541164157936995077172007145153362832621849498608526482875449347814180326982384362812193697289945067504984610513434301584601292088795750506431208635185122420332680245484218030745603879720222262839109526627873003978661843257636254085910322609270233324765222616614535378866083458160521882290034106049983320471955612078166375396010315664428619902463350216752774540955212706160348872019684793956330013789197965363223140336817020923588020537353883403068352098611652744786936493639113722612173734267759508147039466805864033310958577314316911939664302823332900134684285171300811058647763356581947407975490377920665952227790418790694229454220941958995921067484886912316308636870339961172710522403940249610325644698139765508515130838423190203901172769592893169462058307319143946680150191923602609222859983190738644789635419551676198875190268969798768692746957137855409234155791656038489923810008200749574669997012972712398356182793028586264269578010538828955312328333226136974169431581097914621573605851424144468034952059479651172212760087234344386539218516827849811608994001243588757217467182460542091736137295938113080370109854135042014296185472722002788004753253142560745929076429361218120427064165387735711236088330101399529373147308221642167545686591805586085894783359076750190665193468459323510622792331125903735291066836620553780484436050414700766001736991242857307105777632553220221745175085269078904399052639056350013769121385281447661225024107188564412693793919175821079254911851284363668843099991430213738984061582392130821394409664814363817980609644848838878296325469475211908949145005724365497575956827275488723700454573219351231734444462082330669592762390526943156747281074268487525352616146854410099378238630125903130472196600039495980086412883769188106375668189485259661854328358723373800661819384547910353521488282941676102197135968950592497673239206487251786818917702264898780952498972631977290334942759836122567712017987636314113448306686232301480662269717407356737538968702253168937601848761066198840960179560101399188401106805117377656747969642172802015856784949091723815039166057167963192852314545712633250129106453029520826790016227490297586513252523340385536356228252189333190547516261805799735839950546441288256765519863152019135510309946408366914989372266622459361221710918841758781005408624414361313647157622495751668830928148698054413722556646633126405233579872505058167102984325144195040313122384801106069101737330242864740747191883483589641422409561751191231326255977628778053785030312411477438135408888853565674739424700650309693456668090690166674763490014963312791582348877273961525920329129834754173429015872406133640266445648528973031741257532076252925245361492188817153683873783021267622684559936942012385780275974144713532545145821153228974908115483031222560392349995846362310910770200739031901523415473055555990999176311335314137240163755574133583450879907563041015633873401348841945793838183620899153517019054868073592375302373767993773793116960543347314280555442112392684013165317025048003288823723570564590068568552086048685851631607399188570404647851502703089123643401014113180280143597269390849073540378589392738323490582142427242054983426595802541819418267610970042945089385081060208190759798812925258195376243272800307995770492424778241983597424342706939546002601060897209812110568372680309306586217548302377223337667716632153738887454881017744082205761199427512798100177833848649374326994493941183101171383482875801585041285008404330023570622848888034406096497214218116164222872459265073972647987679466021060851051223219527383223660752022203996026887566789882035086926440632455179616285156105165036130436271218218250993192904362838402413589013886013619165709783988043757998598840958608678103824410034529264291893044804000456436930603304270845022337389290652961889499200677032855647238798818991573281772641481834836572775178454268324309438297677117159156343121171036174393095549346074740440458758185751707966509906755365322015046355935220186674444563896243958632033537427833307429557985895242917828004119638317891538575984627819104370952609154312312230842197155157925917103338910062442796120090257322713008367580202895804966765456342490218734878689043654806321268789248067734990947206167731496594790408210590486639972743437370336372109946512003336447603681771729117466790029346056927374135826218835196675775277848885350232044196469668172792598092326583563502782512281354676404435611049793503354307128374642102273406659016555196638828644621267971207382987965613342123948207823887022795807988936689094281218205121746508388871432392893932499596630093827121310964808574384028734529430292098260280882889282624209697188830382633829142864777719339473874263433145011570323062340322706424205889255620723868685001224809464848252735565626319681461879530224164068009195500700231396067783460246020011259186600843252901212087509588172829252891339770613799436784907582332566222450958100858521760526011252954111618165295269278116342359562203460706578793367234745728454707899460473058174729566162810615404379590097744504219276824572365596793787147397085005207479367621195343644113237154604990147045810703613804705438178126241319010235273495619399172798441798135610122124397504681834554485526814169050440501104956405792764298700146839766714196030495375512735897821661403266677908063308365548491193182282031330265294757040414929694406770639079571047990677919889217275305682020446437854809367246425592206269705287735195432189570100774289981112496624942723135230378894299703194662489266279249620188482247186382805301842307757918310396122819814864994426561898071951858719330479996495144221207027276432560113491263105019054479777894996213512795245640099990657111841099072692787527377853351492644447575670252494774163043434910699002497890931957256798443655251801976214741125377209141943093522915808406101129516452103768144508891714077905306563191641153701767520803419636302142024396229471632236142010605604220804166682677692722547653430341004472166264251823577706910753493635193336863600571006820638866435686797742074839580802748291642714673604431685757664957407907283607156087978650926673281612737123549688596199644683588974716576790059608894476933910693557076674064226429585568441137428543673239142563830178144687187197069555123202303201380076778207490397753519241398305546169793685390708357452227296383230854973248588166303686039350552304560255203474819204473265446849926437912549019353673687308980898092061354971904463979892714595160222298018449320928615528000915908249189563042540021401491462497434757491796679824317047243135727813957702754354259159129560579573708834923946301887573870967478459838805590899834752712489414589133006055016921866789155180219534428269314249404334315858644639864841664543931906805292875810540418065432495736689703015424503821637389221237649810766452070501686365614340828398181306529234614158672736067539479677187345227755033703636881802663742121513789728008106479587934004552561768551027798979041240435030510966073339224307517792257511484164320333169818268418509047625804126814558017581502950942536974849271828934119649145622183178528651338484405791657745782964413332558205205596957684150054183989375512613961361773446708089493683781748487139003335638671082326830156828868183156166019700883435304334472133795021792435558504068570105192916731718423506560633722846025294009748595790668121252001417959930427656733855474870065443577761334564987047365363920569989812059313296825470133601173942895860889955781451719933215392987968534821404058533930062925691562084755978868770995270563359793047227672701171642290529891586739378854781526410323253010055202311825923019125759717456280147838876286966296362587641137176936836721751744092394335057833534782838495148617113753706483759969319477883558296557112297075298998116279123362091708928868617916177061797059388425666291928567717770386903922255695204727957349809544228073676074905658447545100304096205298828081778653728637890836221180993417126807961718509908199962538614311661037048065740477992353892784529161797939008919931599779210046552614399373994450360170470977268799951759121829527518916556088763335771855706687937910949856570654682990390442058619956524789588344197859850637669732838498046866522500971596119761861674662450668363926664676230171938931800450001834705712038952483481420673927085149956375087978679339283333733759297657747386086219633454059966735951473624705574128683117892240825642128541679217958125039523623387717167985834565315762031592856731420060616699216520526578229755743282990118612874323709912607309859294350744849445275537904814456514961542488561066477062518750759838628997907069208337737695737751087215426994343420659921224959598289993820126836333037133397066613971794182885425878902434854497220712873737425801131231237762357787892767624630038793578065852599372928515166036542480568612038289728642017679451056681331262072412994855285922682332506699241940484654976020816397593597849184112873231754695572232272165896692099390465188435962686471669194225128664369569016652101382167958223794840931478337986333340810227292810113870219291055494334824870381001083161239070402700804963918901609194362019284172374182450183607536410748096927072122799270817474055613068382526972680480334174099921874894985610950240119374233681534820918084012325482344880560012777994970887066154639353891032421841234784032885626247241563580154295271995727806133112797393816405553475853209165013214367363902154893914940750724756043617513158682784462653430320245850662981614689485383197210204410785420454587980372361425835613996856644685410753920175209326673744924035315363446818595312856140656552349226082763364843359306775297356798020787295359291567505259844717357911268278939275247009341428858052646263021704261072413762940320892677977790412517539738963668242214364167027218468440716772072389748373108882771252892632414866134660903659611891985726047426378721674618291365059768357318443214263775921022014137928620582697192751059194671809598214362609627278298336737053689571354997323748652987522750007327543919631664620134332065186629650299157790809906612995606012838553224219406635065190042584269545416141788269461909440201430639630918262632700207327387582279445032222048091349507169683830863744848221240389227982898390082136943183465492717886709280361015516793396754733020426408363659691544041977235962239004679106694948006234764465309377065833985349298785135494493589335346664017625948950177341189662665824209380118811341300931563536919629989537849592448803475105230073594566099526797441124955844940492289313848584244447544284202781577582380759478358118866453250289905423139409533667946802281343601459213954765786884543676907987437480483916685140182420466569136226768836070542983578384949929506448237168476943095869085013851372801782269402172063591627740902575491878805602891055447284326111872402962927748800037089954344587572588275489394870221797200928083174731153774040936735687948198706998693305135321309817472365779326802773977766345845533211967674247668377391055088597172593910927641933123518849018738025644508056999076914671539763928901637285449876135191667866604680296217504328437173751650304445039427415297887300930847810544248566554229135285913505894622697611650136798263528060797111758297180781247066864729738561511101620469149321944023295627762576197948452729438505213647736455112640935301934195994060010339015185078209707843977651899428109726341991550435040113813995456867919859229852529377022279096173636453914566519004246657717461649766836557984707821106684803856005338714324619428792611620419651448005685294524585731099387998031357315710125792732427477288409272091587055908817449126475277499590715742329176172206781117007984305972029777369446407903584120173714757105641100724960821996412283367151750277166297699000890658704631559040374856969395772482752232734623095497225330931885207032152949769569896630468552968242142607274740031054457202153216148598779655152924703430306066216972867023859841593668270357280713983463720142076249167289495547959269659841301344008304078362337327380154518108833530025478690901601255571996873909772773344387607673948504275369432367807054569153739064209866565077740403701855247572925928644398130053189148423754337716571174321898055956497340937547665525715822591817473193442128448144680217180212601663824174291470171169056116457512293932816995088763433697349741464619737300138822433267897146872204336210955843422922954931125931233926211844186878145993512497192824687207633585226807677221236996790992201073909325899519388013867383796417780891988486772444763690907633354485787219380960832546393376521703717963865713939723442880893818976437737759260283336360695059038687926987054233303723793538562244988208400642008061306992524094467626548640347534615259333352018954660590604446263613067745209102008850710060613042374277726819190398296244524842205193871100462955979081517587416351684205208062225720481202511706662257423320967070931500421958730289866561031229145902491682423361465360639173632048586596013286521724060403527922504341292136217661804595766664389044626761011680554915754353607661418199504451500809546967794458462975968885922383228589889048044255324438176807873951158912760253621688581186176522928266016226987774227249385131125603132220330275487241588698268208869469800753276586485020722850610051318352651708948906018763213613515685043894597919291299680373227582999409588953990340512568372586428928625114708363915102289996132150068115205622295642279129047613254847622549792513188553045997666548513157379571796187550465702881301053068889920229034917120397437724360091948001479948510883286899770562198116233621243707121938936958979151095305656100073802377138028209986088703677755083843740083394745078783890649681088402529075679791254983844694195258454230145143670187870189071064195384930759229562185424605444452601404170841885252867857709791692511663515377236938052036700499635465693296258048989726497455431452381571539030868484353300828480438079441426187700343427074217627952522523947068646128515790669731322028649573948590878914467043584218263231332030910235449602020572459933642493345298582577681834134052184767367661297515947139815655458385044142038595409303538217822020998854198974764866161748828170242793318597973561913250521434926633832076043567740662074496336529020851905297015071615789805107548607720173347866080854057649365345661347894430647804713413327892974188963941385283516233206352477633667690588965618552688596001187922992321794577330091004473458044522408729337380230776115339022608960049478433270141918522684904317492456932776834796564357607750133322927338162354919255829119641834233987656759001246158161464960137336507844289077347213432092554130056200855164137759585458568322273150434021476314909773083771503146036023026566318585963740195719612532397586938835248411709170215843458886533418724751376701395825092725336368470560447248762452056286790892567041659001347000646750867726875827983365660025345413199551967492095948112193880237160988687372516061151597980669667014851746470713302769147994359446695928527496094263481784504281267747608650542019084050413688382094345066930915191175959044839857492037788702001601023782521917793462935526774511332503072021165446385518057416267488721475925539812890452131219679658519486190507822204958538700467337377504232880558839681589712967221573552421632547398562072755289096016365803989551240441169095803787888172984153927307245456183365575953507600744076866617913227806621649770112559226151933399566345685635228222363145317420844131615187268654562337140227253722265796377215920078517746936196200508137264797305884785487646444394516151431215688356120411242540256217466782880994711277564279410100446194543160034583312699165830590139200885203735537631385256706323231024046434233612822349417638316240937432171671369010643475279119471611733830256050300636790258478322848491868834646527558351103655096997809711729210697096708100874295667374104992330352031550739052178841480815695040762932913449018659445997866492792449113006104433420779842022799657596422100764780852467336079337517966005870884082224914640758427788810685861403573295358754674200129417634545917812324358424472205670596611975426995997768063129298019786961596933848524666868057266121209088639832913883321013834217719861485765165341178177576703364673653502785315360974236642262922451767252785953026889357513046123446611943049069945073106924609305196292982250572637295776399367798344679185534930934973346166447525613729335119161852890780320889649550787534369634884860754970246184162598183194783469345835825245712910246808728797069978375252770570845327345750990747739422470544830819475614944393180322468730766074225639054931530809405957316187891977922348464690716428266093571958853874079011631006217500462621330910713670730543937918655158409254322664008906845700658380188840100209979403885489137318060152804640471338634845729730902702903302406148579947487098430580856358875789563915742801509746828449345418151549094181211845378270988715140121709748297490163058624112860327455729559277208435362713511163723768715585474203222032867402379362707907919703816963313024686702678435708724103927676861420352792606519129810332961092608139229274940010813372490315786816162464998551488212179777800336647338403335573087742381785419173863440841817046762434819436945924757152759559218027389123138665931755070131599537392950014507284577054290310667276193816436295374585634591622505269939722331809420850469849393241339037127421871825291182085201166518694143295108450580831810904236310493602916181161928105839583324173775828900362121347280869767283805964540900128401639512552210630486592283497339890229893387308569750177349938709509769901582840850033034619170569369029737700573479818605941937784924753104202713701930404987542172965479247114526273663791100354879088830651701761792412341077431981825406040706723990788548146738540008918235079657443601547846400897152055055313495041610949953927408355513501124959997077107189972338873261051583321769893883049375852743404900361206744907517517153586283675744111732097677720024138581826380315953023618655624204888688062603841514386687042133437319150915774962920273805846877400216395280553960778352471521186096318003034315210738700465194884083504388428893512096414750413489263418957042000180923370747502002482193846754633926965543282693735728164371767622883011155755056385187581233305018379638815295631579404779770850235239963092566163217497846442539942880165869740226443443884637678971453446832094137631767018910110985937405647631855400756213806671913198531845521133653795087535961923686663201778761703896839724894413768869794566266569900102813548629650924286799616151187386157660091199002062265005196960367384397066229036879145119780708068137376752366047627148627402056561030299777319506336645125216197976141788487940394794623100957928373850320639424945429500730083530903249278286657891659182094794059905466922803165632043779414082159956971492384980285280669871622128514710269627394614359372287846227480729717723307930745559665125646073237717229939465624519083015135647873189181508198024865016129516456892035603217706663735671074060764654572610255158785216730149795051026507643303519932694179376407092760748486460731095714575919485409536081225271705089784728612923322744396745578696835590195438451030763016850884634199972938602579673298850114465137045889505885417082292829588991147302552340907004267952148054233645231406948339530159525699095344740095153967180590319040582654667318190043839579014918963169185397661835771677542410885556827069878775525688729402181578205714078031706086826752236411607187833743686807976195632476503191795963226825781410780842148828438243825943035667678754016975500105668628508014512004718289853951618075363508342255477974891207587272224137509245601823017662074524774714422722853769360287716926342213332173067691789017067530018770198555625066967446205998320123764531565747329959002851596522712269885949285106978939930672908713023860513448052096446909394369054266499797764775990626320743916232283002305748955708744453763964801797566990780552578394736887481443617839352014749768635205187093024677409108023369496341585497985758163927274557475956798034456580323691865708002862215939972459681082709050918918426222839502583736267150982051894681115437427389544181778170316334010766606690086234107526998316727707750517151752280347086279064576208473404021799043991340337517372695249099367384649428308718324399587331522809552313736380463934356675223549686907720877070410070727631591154176469726531880098198705387030050150928350622224943009276138015914008651526538046752968565888118046764750169308968336852172586054547154640602648068781506667283736046941515031651767793234393824952258856311452918931289617015828758400069387722558508843468360080666952856098787217953535775045583098446303517643317088319143621342001227657409304373291271043059875529497967476608118694452433291271790870631505442628453461028498127360942113236594679811874865029166649667092390642918910719111117072938787011762464557395222362191086958497158871218637943641617105502020210349921814204173500826891540110331366320676388850181410615953196082335926899184415419914042231068605371820327088685504649130682769652489630758098775225574666080538025182273258268481641605510258003536828387325171143002351293794630517605664534011856763909684418258074155187164001520154953210471990128327941118663402409121947221630845989567311254322814216843997871811196480892700778655659265122383744350935039893828458655417454497708052295076258993776819789035176823249493824296640643553140455101635438987794443974787707531920761619831574331927098841198715885570564213996960982422181023529212241400503080916679829703365135072051905234889798734119018707358758907039820527183801637726915465947880479391290621779057434936870576511798686996417597711190892043374700535080387972407467137292051421296045513341493822308495437292249626852616286393665650323299138264466615493165774600349962992162357518057736548813395871267525170918837073984776913831337534734091822875515749601795254369974729255028264437660514660995608972582210970147864643410447516129102012074262380208938499542654546386943647519999305414192083158800793409346353667346581375324889246563333027433695874826247139150129673498215465083101914322782096430916947595847721880928696369450220664069771977998555535789902579525476291036960441001977663733673341221617077754438825316672258112772303204883664663922203814878199055108714065971655890785895584907140355618269806380826570832653548900602956485897698869282125386772658574133169084590323979126233431380576555942777385240327090822754034211812730991212026222175496338715803999034132901492736858157704051288865973859441067736647785132088452625108672693094929014409513727386496329641042051099416430485838852413411041225629860286501376166159681283843895575749138868549238616377326951518997407689000543589693444749397124508034588728533728843673077767760172521926237457614318757392753856714295244658507230037219018476451667849973098274662100530017349900616541905327037032647330594465627715829077995377476189749897603912359602735425373933960265500344235093181257985917580408135870573014371579931281631385089162148302455996447017916858348145614145354636745953714646996679325124290465183273228826457462649302080006298562754243151760059437981867753571605040498645084558975064920769126633985867554620108207846665817352697970249970956170086614440319576978881579119270567019680873550732518525842734119979749546349040917929905520397246154728622311046608283516744357625411574307583166929349260546122085654101591635329309258922988059521737790283797064958491743891737014384969469821840105488937496188159520746597931094987658294851893592690363829693330193776154778953687606675626934408194231718871122276464174747839821061305672384421393335757327569907732292464622029426896449652881184447443854529115437045336315479382547594834916916025627865371262421300001083613527324141280929629982065075886859630161065082558171599937024609692543560745346336532614947011720768957204924319402415287556282882455243591055819080315739956561099567159582777250969260258697930957625086283432793031469159401411260439530729555925714358146178041281752320649729568878602508573474357731528443390086384611182825125290729385408438431645129408440822889375939880990933666290522280112585158959126120311676075638646528189068928892171970896993290764028994791885108854460224613128361435212165964962459290511002985864249364740243642694199085142167144358991131077789709298516496941684677895165436971775795631373533643583446758355795596683836942122545619384325071823593052086105710218526407448845666587419035062654091916900918035891945473287879680917633076862335207511779519789332792148351448329896766247632990528111258827925026978865371516722897915664901601072768823569302429290073915289278402178475445932510376490683918116254449067310362486430312379426136755398133777190735355048274961023207315905111640144439905553746230853925938928290855998391206446070068482183437366202339821176963393912971481782658194852461486053488955380660898157237185099642969069172379158369703660654367257627627050410249467620836151012551778103355410723691591990305594367162111306770237070495134221899719461351800941509666348839579466886743219534298096168216639901783244807728438978763543817265796960932806862009609811869807661231200607813802166058185851416910829019636904574436591167644677478015268380372163771696476580495674663087053567350626270845937151484559320040943404771779155696807473132388775719954547384409035497651049155597752769103175465498446883662154229388586496835325905208947391274782063558333731027759514391330281314211766914385150711395079789642549270401685411137424928508325782576385084660708915778265495579798090232612342262085514317900277999888818016827706814158857668839200999386521725070242565236304164935108593992015238217567920317558061014599141722137112083600527712122540886855329484478734808245086503377062226921880556670325161916161199445584601152476449368711680024266969221026595108608363165423907355522885296393192803525590742116994743500636283694410002129521189490259474851038515177074428183953768341984448085797863052870399458052962158206587465872860812587718497497860312118516167697709999841699942502095938552600603041367551709106117841900731115872414355339843657121455896061658941790604840022769824450374497343867026257287286503372319720747805332705958815438332124799040757805966244301241679146874403070479038953793429612837315386009526857725831508564613690961096605196216459629866985962405590593535695243023937332781434397612448734433969839672669345359057654454259502724554549708838662991776371694487446956209980586726086734722756392986038228328586981182605651472536141713735303327362186104375011841582816418839907936086851562232519671271171166676357136136377567264863214418443860052185045652367904120964935658094757135028391283256306561712065886176120878170682924447383198924567979805990060995612386608260329163607333444482168495254587074943692629925217625729572110586078519721016319423879739205255617006201534592724014774892735494233067037591922778851105985063991857654635543630634616190735600238797420360485730962730525808691492654078330698909843622624890334801465447219688897600018737758721544601626881360662991542903938608637756569852963014813065007742731438812791151288452981486665941418851369930551090460314210729827774033854337735037938275963976875639213653686557533371785903855077003222815480806177517690204294274256940253968166701795750697168705976119980300237604862267269132828372198518465684338368335250648782749609477901735519673534204355549814335668778469269863913613828119596481291416667353260110083935019799926202915308756298658631353600505349549937267107298804128594913324788157583941621271201815806549778039730988844009396945370521629277398300525779966863092544556737662821736583400291875349217015390584691121476039577277163944855203034729104206858255564272897504333806503658511341859742778934188426002440861371488754281441986586326593355856695039140645412011903554444504708688526382179806825552338324834525668546560161433593505512668461888851481312604282376287726796368413040035806049112465849897419058919329256457813907587306962814374441431146322669271613500122492792377382968952688990858511967728484123046381255434603190348192876758036551856277885479740738749336970234920389321480798523174241085403163971220228945415450717856180403710677920802080617602321990097804970252275479673723714536790295457271106259046240510538385345080544263305984943284693145973080610306367546419691232319647827160271885556744220678078696708641426629595914781942015992771055961222778732532464083499253444987811118784022875411186545028967011653593695373074663948329753396925342376418684713279563763233510895202708779843079819274682674360940698781462142489967264547711457034035769118771686848805076255254769960961422801745485784308338936887136148543798553889395801620483240691933364118638166124781113037515314648072593704235236834306952304690083688539758937787309505615804738417077222014796404568708392530011396301051160170797170248959236884667822083281227281568740559545377773055418067511593122612526039485125667615809353145569283205189463491113660324091427430165358698169997513469077038352618369486520503913447599999836301966469211544744841503890268811871518515240567329670073650282578683066205911450511201069934354364304970760912729559910577120007140820005178555364028615892119119918097053139100082585712510102049050517950712777881462655417385278397083766475297305638201018679836925521527995455562847235909294731264466231840605771053534048513727911013445395411198504644460216436428463239487817247365209510004480188582464860439548406642276111377957886430950235674931155581643487581297128952237960805399561757851497933488396826026729054086710172032626314443476900519514620773447490405308428023109228264518504934394870051877706081128587579576444378244294806621232538259280556096350637181514282224735121444336530656051602388167220934795964239530561479076139099981377526625171289998597851619714703633543413270633156606595110153551572630176610770618862181100576203040344855630201477956256589409684383944458871330086171575129090654260153925978991335850257700828203149951163878999514186927081634895774277082353300510210847618488751583058297495399922575703435951492909682054131281412600426078228732086893247346207857163468833597599999879555764557108176117463868127880158940026515772329298873151463074996144496513171260208524121761794804789320373771930768448742081309989243332892052039382910481223989544883688928741462316421317018743390460157139439933164946527771316845646427187559853669789300611557173018200182819092614689821773185716571338602747623482988025806611987992516578424127815107358745349298968604268643502255034199522331958465437876903332236170835451129541994211105270895461714255608719873727929673129072246193470954275680220321696038172337876722059347607928839711416101534094633646733864894342675267847488293658872254380847093769705372408424345119590123044641532954416537276816126689462713493938500596975776192192458973505245243643398768013437643610473192445871913949269927613834905602366051782590310087359798554271806167676755450360846946141672972109421626685537978533059989566401536556627371427847077845756610564145331636807927885114260058227893100726946455761739432936705264315808460560352023398077826740665470834250139116364070499672254081355954225464065047534860989959104298829598792332327273878408912647609408083335507949570795932922116820615092817016416016487064240440184727612736746915461339713446943511062702906559891197871829831520317586370716192506956796734085674698430598572130104973948130088216139056359837004560093965475411712290539113049725448278580536590507781694478688445725050311526143122932333183383975391678825728330587111063233235277760976213790755277833022929151470810447244598078224562473207391467178229500190170162484896277570759532023929527701418584430270617664543834400600011016462413752207922712933253011079526470931582856513220616703812801985139192539766657871716393494113165712735780056609310812976024984195992899597707482226315838103070400931463430253638695384317127043402744592903743689510897657064231976563821306992224963964698763985268134281198270105068971750003071933043954396190012083453717495254066898205369800058283638229584905332647155002032561429483915067105528387868876269427989042055632385494185085503138174849271475363609548124180128102771555742591985143964455198735413095449850804970240540788200967837489159961294590129190027219116070468714737078763755873157291479279503193050031698587791612404155870074692746045700643311272094055518097791559935251273336109063562311103908457804613504963569584288264025765852545660595588515496747812289491259147215943362348509683816119563709553946242050030059196512657306213976156656990962329224736275180566459975147551739774022859054350376899023176442940630397749975056682198541986165568411878815335685605849762403503301042037253254401191994003499747720290981398428162245459402077164295281957999064230845076527681729126303172831229826665380598514197693331810826734814014182628754743503943394737566320787256470158368810760034888488286604107301858059535272260468689621937682566145854745161706531801371324611142495687599260080866321380019375506782000484546409298260766007092582262261308390711125730943497604766780351906932005050069059364844381554769074790566585138107007797923433638313899399955377104024404497561450091741503393701912839586863514844133452395581153741647875566852432145815305688929867282569540830545503105702745440786974774143431818568766845187045109897710331223133458337827491181158782994316907933372484419657521360401466353759928501542657747934952024651361690240455399367539102026190311042656170007875441716178005223114174503521587325546250957362551192346646307008443047401916456811865596967821240435161281140066001295234130786069088503463635932623244282894357580581763082045858597582747324049383363442514007028123700501701805957673448644499879996114772621316928468783831602901756503951059232348074116729213623513006411740795049692353139371958585108888972959328986507463627885896197428061342866320589604088745442654072921706999057307304215756327233867758567635677565168137321829595268087786666873456894688070207802056503643387210534902394239580208594788807748123107652844342898269101636916318393978311370556282136568553453896924849175671159871409774708227658218994198668462388701395559717585449034344700159266354523296489985486985179207614407598688069617404367144919634499655112101880068747065002674436239929344277200429066017792105496414963460822108274459630106176127175472784644362610067902639679385269170225719173075475017770933689946319289936001916016279001998538727593335954444070968308064782974818130468869619049146552054251973125126661143002813671217792831267875427128077950633652943283880094883499904396171800045051490902757519746704379216220174647996445165205399221793609486983010477026361894025192857417663982687626075089053226703638018034357679445862577099046524494007369390905696500893423201063521429049837579135582383808805018192217754944745129898149789167845833041519828100077893712169459371140961743979309277325034659067273978541721972643069619079217344015964211270527319026276945784457386759616467128402944995333460307795199798375447666634128606707069724719982285623061609530031759477287439610608354925740342590240644705853888990771457030931480776647362339826681111595902748242114757614662610655916459127042099250682339498258675628232174310966296081147872599760143066122935002194933373969698323417210138474031621628851442157064821498230092657673514083952083572448285703977879919258813499910505211835611634395389773959206996862014897456154240594010483627894600003054744723843963053005293937137828040064468960746401580919370324415145370236642666612170224850831160004587452223385979143662313254862732281052687875677110224927099683947048160579679811542697755370491101384987066240712290084410911283846112632849512259448842873905824289251640253147884816486822223934458158436803898488301768838485237067978878433591340546354648718942970055235050187080384393111228418856144051270617624031551592030048300805349380217626782534136559555182937897967730449743098181054989706191123500832874736880168820018742608208018340180132814899362139401899414479128719948031699845890766963668262807942996812141040698670469263217888289624144670002917588234928233652440152718926311192925158188304385920574179735813193317941145917554131506899977384117879589351310945003843159241640538138327926022691981947545578833643426189130898861032453187450882851972278404237390684169265216034717021656499368732195903859191890280811967071990315996713733790832441067698740897928831195886185862383840089906040535177883822261573198553960485372004011819157376355361122205376264544864330214647020320349076685258855380520587404220540402448121635207528348718385305997154272825411465963966999775278085681507426939487307076420352364748525957342660057787772502375359243851134532999153009250542771041528339720961622969543199041202787695396599699681354683335904662200094553851161151749969176938591728115605974705108316183949713636904502834740584387648479715466377632666574773631963375817413792406837895651781828880789137008713061316516769553861618437403872363509261045206934203834079440350803296060526162156657310636159959113237922694594947003999435610892317308764628803959355780414599847937916266129901168174304949038259964222336910570618696177833139484788790705124149170161520446599557794422851241639478483645998838705677933970840875791137310796404873758916362703917901894809493600965284686189019271316367288032563221428509552368123983165240623731872922594825201189230141597479264041931228454137717954460443150434074304838157846155703067031440383028946644806911642271061912173399876042191802131370255580189609231050406948842149176743873660401339270587422323445240296747757103888310258025922139348536854212168959203120457593692784365236017708635099635067702828398757577091965111921012796442768530503247472786868459577538529368661490920551707273012119451051413920542912246751582196725263256144594723330238651046704059366513676849255611171131224440639464929908913297440664710275719477552923385441222319298277406267134787254467415854208137386782069465110005476645062483385639947047661732640576270404882504577937404243246088096121621830101324481666363260770909622546345234223039157939836577784389932150481292927950046294448364858899887073145453249594740205465371653611374811660316939513890838924460638744533514413746608695764139043154397503525889377336388690052700384819284663951757943918141586577877762666361954420135688429301363539302356064964645190432723477431217448838519830800279872039420270769452555257246977786137238091858365178020101724812302479101330339454272280648153327327289635710947390752508151247114165491332390179087675538387079521002438406057596002701412891630317863631306546580296399711182163759457697370627873816463724937555358975118148157393375163178783864963274525855753731941877697047244120798866903732866589133403891018558835271195356938369515147792831278546362016193453271055240310601544325964756896089699977812948650547034337816063972263708997817931081310700700746131370237515238890949806212895123453587620845784378050830981145287057997646767341411494018668799411677960024094774049738031768021171584483440676672841180521769627303839065094678292367951638987813364243839006313418560728126542036734895475790671439913132322516829514843541823808029203058372857632674793302596738684965213107383935185468470273067133636932654863492801294378164264709839791143945593117829260145609918559722110280210839397138658665913355659019978258232161953628529717103655421678744155370397058260334749485629286851679356543544958003451766021992243010856754288657535225091473141613901367275039777534628970383110333668188641482283251606710722549662480038925106968303080767772731817886420749162361814059304991686415221997528481012750094671270659795956717934739127019670833192090076585977422229615261214905746292336990800015551772176406439667371393649070998595058086765418559002964759736866320000421180316598952903578230634622936054550489621305008919512478322579510678597659293661049760800335384094626053625416893001552492799784779483715104968293125731892050082353914680797276353287126393319962222504749414893294371090306764434879646412601170837650255542036490648755580973583890654046787583768823590247871943001555005972232726425925695755664733773507652980920976238137009226606669524411099801939733235658158074204362714052263863949946775461876212777534104954120182291115391814065482584249437742278996991289432141155459820082364372723833565235297512380867181905869482067302758137477749905851778057681518338889392713140567712559302898300664704095452322827783144700205657333042204971234954410393889227399823943173390119403183292219716542759399326979436319420647400194107383865350432240403206614771143870100230366554583275829198804217586978933672762130521790906634005687457656461612421803716179235368974073325026788080710290967430958523603086681760891388064157177651039630807913294873489199139847332634637661273661015220434964450552282554533997287901034029678160495807545403337048821658732298206972766709367192229167550755641776380171146224826661821616774225796843287505864762314839899102208331247416070234482538920195101397702170653187821133032198240908394766636842207953923224014058275372912970759054190910504449158237119185410773661106309935971974637597469545928388918391870762388796120678495759831690581368335587266786877716919750143026546934313851516731408771111249038280900154582082809236456478707537371583844464477809029613433670605078307603946724191779497389069473914532710382891691294325506817978223556188055149591036130401296781358644069973827297651455874997073047391076342911714601131681773932532705614576322408345587706543148028190865580369693914221685859896633991750232445779463421496934649234409778540113160488117692849765206706023163057079664126742562816504733312037962201961962385462847418945158196903914412863608577689768343789806194491424871261129559276162984457850193789564900236431760915637532263060218195111700889634048544075361289458774807498376101918975682195052024840753210254115116967372929921370662942832153618007221015317464366705052758173604182436469926579314790932366602038506114205835254274483469681786439096324748293049204066369365173063049936374089317181931003561243088003243104786512724817530347119759703862096772945404967536285193946636037716714202834353715827340755653093157231915235866535037333023716411627000276053377660622147068465950971871285237656743250406507378527998547656254689408986549835472849369073209668815433002971707882348517112196514506633962513447885525273990171995099792140617663910997720713877458658972405549597169304876862238167758036630707689838618802603337464758091838914163762349531727959495050762308084034117014354524012331848898210447164934014680139882726921406831651025392314896468405147810702507636027687728721029597017022534090288741580549395678843340489392480171871990000892729494451418300429048302674227554447521089323188212111454950275952650373828182168956364982356861129470633581989356450257377914325267075664359305961012524356450761769231316487840694452197392546826445927796428372713236283682928218689701389049145923503760275615922880595100108199029787978281010873916538208155737407276881903373899325951096130013178532904965404242253883143850643902612664622071581458151924701002018989674742852137480940660276788445463658197258524245071430732066214502924777949658050021414083310795304527673216185654592706765976548641033537051036391443582223293870365962560683440961785985597921214443046629984644894054096774540212769073492859533433101058539502361020973093334245411302731408168307351733499415510382813457674108084809988890090858512103494465683347932725086777460088821920408368873484265685562507953685655428184965521274012594082801676575761052727168084293367415255243624491458568867705797138493927015238034308413616438803586609094841993865860269651363818241954354382774813326623236058085250328378980069607312463181749029867805980281846804724941124226604588824289747198036758118718955614733099643440248017558001063262805549093787846095429180774483971366119294692953553013751667458318291377110317969819716667847842764879120989039467645050731573756716997741322320592496975672089001365716501914143667479939320852415523848434160850319430600493711368498774765635830066151752555760468063798146208335933173192233877638803248290561698587660561076723297250792166978301140148550773895008419444157762461854542320782796390223046463175683112021949368309721687714644759046097302304334144334749206924180319112128645156794510926599724501896777771266026097506962256430263722073791302076934940495823317685364917986644547846660426209830341477588474845654283202927809210511141950772119707979471123213260282867921437612862534012634261853854282109350069864154215478820985903778045921056378908428034875532403957606459726594463107046149091434582078456405450864624128156470981612789454421722845522945659915569052454471813615845193694813404842229610394951375066127766389386525960592412779653536164043443383328096584166925376144936068931155947878266153898046334869779726809947969824032835462697712287204119680667631132988322879777158685383644523230216735773652025712815529402263709775517971718932423023713076755282304415309687863805437538682107953324309822186052294906568177484431530005894622502026430947991713844132834093830755493906298353547750475763770771839402472782164479349688093048538522871625811870545591321414516530227435632431292931083920142292347408549164858320690885972355113814650512605469822011110410962491871595209900279491314951816910314953401902508236891165089624958015585681692551098340096096079765980975573049716867226452155637903036939419708184287317167108552475969725650325616724450998945200629492562732641769305442335206823759503901207414171115733819891844860842187983891430727557337123581604695638320227325712607816921016949675110380821701183753520236654067003746154698453915177595694802693975081530015307827609919100882815495958683493742680613980951360480850477517251024483198162130522078781762323068746545028789260357276864927898723270631666669826401699240576421074128381865687830241138132079520340330271221126484900829598808769431359042108221831367981732931271781120785068998509160353973096570345504349768074293262203186116892229133319867713001972505408937262458850595675950372675299613298582559395634909676984339966412692793749194503490598031347150449568162738977450388057848207838066919184982429380677224389479003448136694064450056956060984464742115763391160798531959739620443914386412074161381978901641476456131336163539846386326259055230139724419763157231586369741711433084357530991521333322799271020028462537853915057739101100216829539027416114925839364228531077599749712771425422634865479795806252099595510968487495863871238728969971042395713773656279146955476693841333320914507409487504086422063686911767526818454595907928704017503811590293568215254698502053886925410257312730643340537954196869794200149783861716922593913939174122578485295338618991823946920471447505707911035798632401564139161259393322805429003505454655965688437974977524564214065843299838826108406703612108545942747029874823005214621694888444095517050600233045507487985939112644558285565517499605677089796425148121092572183510393738873067312822443105045469607241475426539322272304982126241998925408630673366168863096672752626467591635488729794185491995860197659590118425078433857524541060404353562828061325088672568359558797725168254009375055426226198287770020563573827259396243361963280404460427722082682068460472099971473862188493624426717687581062092840354451111100855282146330769210478263272556456337902549401131968160577657821070279654456316186121949450588687579689394464167137201634126006140787244486645644687473845869930635545451950279087823121349435033998934765073474034341397070446723406377635618692662974017446181209832272108424767941927299931775584038179895430873022492733783349317992178798686055933758995828704632073069640090539871677817378020273786601570605571116952466696677362733648626306520157232531252719844755409096322670588312859622714280963873763638010907331366640427408678229868808291766815570644300926774888972065940000598348553030558043420136707415772073947025671446034393918071302091266162258110585481456923489286187547641491190203896359574561371817013661143054624431197258584178492639714997512374157127469025412486658389817547750871377115181914281431123378078040352919777109975583473723930504083946652530512341085759203643567180092579560530474590765877889602733168998291893759039769382277500149410751827753310392581995369028177686143095580477902547138826787461691113544240947756490567940733879279486084512010580033886065668493611802898408999071045370095415467004590848361154381981979171184256873562759687575446375800181745507427750557741224370380846935847128644799597158769160111730796927248974041809403141181074158695422420314952553629013232550101907601984463876833347294865446015474464019262894866433712009861236582275384833776576688728538770786295276416509891248400490977493418779001128093029008688781721848229631673783766896234497358237452081537710626365366973741926695219565416408926049767126785046438278696493789783554455792585989858959794787781206243803947827529117746829212744617522276487892689452481780321592066363476698514915870328392851364662773974718948404757771167636546920246877162238830977640355836320776471559608796088073443633321101623320060096359675457769869297853967122775844032047625365751620880521422857844495596853571326757607923239134926822932181594606999198859389071507873583932798270291172533289459888658321621057457501036781040182317959082458071454212116825371405298570759858515823965480756726932478333284701322373602404891926930582188605609985776528650096747456135999227234745052243437960680831093328004833649232659980811203382596183797914909526792507282042372299778228660330276084230034675474980866524137990437609437367522295394859651842479582336487544423892897587407010102661338809060827415349539983402171276703421119242905493464867418122669015025688914659982163528831583952998183389177698510442065773196254003816345281986037332946761380390067202321973476853015151204397663855492359453501302601708954004192658795684942756381988640770901893801528531524023113276010801785168898647121629288489860522553812315215232229297425943779282591625803276992770273931237479883814534477895685084465946218307853942427138149599047274251949302138748889416540617754171922231137020511644673117338528749254974984022560379065740915242597939323133141491725127225827682553238050948673168291340641875608209436005598598932407853889878201960185857205479023561063715696756131056287792412345908693445141276650891921721162182080677659231969592478679078714681101658110381972769144633249089075995031503778116464568286562225557220297263876099554350039197226041018354384370775916316086648166452646046674611245769136779673235748370447236297887121180353561236376095766743475879032673080520443685150115606867269904780801853120539746458028137233915196025710008089631608254503496248307949957883800365650380391789436165663528106617398705535539184119589369870878275810112486661442622913455701119416196572155441017019981234145378040629977242966156892957255596075175964800373744039070205851765035971042258628598012951247008976772654060126596568361821635328821388561643582465763125026963921925293436719035050112025339909659764772414658664539879681992196828149011976828735891916085761465183704345164728718468904467482268917128966814765052748973635038850385703909900285864432943318325192173877568299761567742628610290263663776683524765592844240555034145068792472758107576976914190529194008429673072043713502764540283623558853512935614856387899251829305075250743287597125053745291603158759095623685086773206328516225326359073992352878880006729268505683480988691400037748499223068092926327661235954858980034653388667325204311321450277398490585130996159689962586933242667211621404451764987101978046853342553705755211072421081287890280388947199321263532751188919323564747512103733000969381872342691249537359155198344771042165224874867685924711342310600392904484064886179475008759616827913735759536709677823898477235653506325920434929187328738462821278216584882816914103389807901638879203737278033003053025936024836428375635655792952514201947393493805700502263764803457490897558554425989340892010601784038571744518457133450756095136157295822747633947615768828466644770505099237895757634573208507945918108025241862583946650568690632537547869488093876748479353174589816867639896528020619342571744545381058578507599074864320053451931404734288657523419093360811825942695832966678771605066236082414016063688579588782767843584649415751616000804050296207868188295767466782852244874664335747698867676351303841806304026360848800350010038467847928044483478930303940796746952936048120799325357676736787422596939687127852234814137780989354623020774790977503331522925673066418904133550518151868481031183961878627229679816971117896303005850114803444810564065414184832696064649275242990335471570503907139069348044233137530928781289691961653720081826649195162813669494943708638617025604768133877671296321260877959414200563845718582567843168598691354062085535390507371551574213490099105888297500522611628599679777230216931637738888310246173682126277462104475010877554191788969541940460368905057068573513681717669667651959642813922816870872250161919255878222674331451556035907652625283663417790161586665322609433992921727556196101420948748871193633812306437321928010442290795235342174796361455727509075971836669011226782366623562877156258752718599506283837213536289601541939079448456679924930777499568242394345532754659208939392936631704699365334991582315772812923348531037183625259163837002369835917859097842099197585536851070813906927259087463931721877052976516564441782381885077068571546105584547788608905633165364655040939478105452366308370136789203957199703862184094694719843279705116918634006740510073859472781808197277978438808763383092090098106429930107677919513767716411448552786308560982779084904382067579781355049437761651600912358203648665762127639951715087070098596116488353534222931797563571033141637068993335877996085753686430029107871774663467439172108126962200346471796020905813688179301483046122709944571251044660838282640213308933752590722883085651522062495607868710844763479705505670257526066990068789961573218272549506738924717227236118369544812129715504340334377563663696275050833118926158022719628334519458529303905251967351271596841164074183138614434370067225007143145758537805671377428590447680021336965144989545099764707998299421054764010091360515599080904671997600329433081207721124863707187937594968142451005571013458168889672507225534199615644065247132004645815703487012976258343351021493433552373628510822429042956852151121339748102688241373333990955905852792568212671326805496553422899862557567597942450654219463072876050629856954566433585044347500325862989351391060567976186149849390798654832507223845792690037356150221352511442271103276549212929543828599304181425497673917482711269899666795587173770797622046493578645244342086396846264494239587298421148538888446120091848156321897466328852196733378432853328679028736321096419861040329381753521389007551591336299597305225920081373833153749188008096338448039004699906939903138824934048081592694294179700132741319398176886771886275055059677246002749645826215084244464296412900552409960742949319086337146125896213785105125877842322613391813802832776666900608126433070946257447983416882724732278123047795728384780395455844877014540809553536918310885989838881987313553693482741395025724050723135910766890148750145724917426687176025232691826197109969796017598210237793637338301605939542255520253502805583347629371847764383615030294279831982863690581010219381133888470663602681150188308764664504387458970676038585831363380628586410113640421386816111569945236107900791416934677393111085135517832238964866425276715967537929850835596434275294926477148689263795476308145141991876303070782233310070052279546740549629485037875142318741766165761311372235639041811913112674917758920369496595994712468658808739532937386850464630731746203453925232977701812233053633441727415262156923768064547923507774921359607719149347318592407407660917332453548037856028047138087422130321034765342695839666529722214234790195883037592986744006351113076564631873155172415227077090130094233069442542850655433354928265477355009521420550890772574675780719841163100507105427492236816933524506284856364658741741221115556053537429566003069929352476374386233497481775327441904542111005118166224358738387049110354756800879707956404369187081470901150517904772026054213544145395313851713930764296378263234444692492457816798411336334558182786825095402736807132282587115064165063634203810296244237818994754370143136746655305296954456848847374373492207795211195577839772968919369754380385715107106680846334978090362419243165538345737791854628635319058214482451385735453339406541327173174228903065402321200016993028542190120843252203992853822827398700385093615271425251535705117989889550107357588804605607464054057096465388546003819306625536789247023453809809469397706282194843698041226098393977591123267349320406427802182389426439028856239993347710901892805663552902609951853915709710860716720720837946700925519738631407727890622400317810827486068261185682754372845294398694256269881852996275791438793802450609154587187572884337844152116952664013218628261387060092044446947010569089508272455953112858020955873279495333096137809109854708786467762804602409478166797203436063769201683531364354159420788843047894461520621959504980345438025932693563605780808757449249433723781336470367366135487602175525941717130463006486334351431706807863816475373457513982511322007430226576349347822636448901567504893405066593507557463347155776723688293619898565819157041499887208818513954187971487530228480480962408243279167814699878198809599800113111033733275701152834229869525366139647148276407855868614609999822612805480329782684639952103909860592450588774832490840159169624560237173567898401720191695050912535106744113149194818782352039208704291862341194288837484977155745896420483027177506456770971752922100117626028271985325856812921701408968493121361683144863660111619516157422520725242230527201825561579542463621299336151632049712855164357993587507537036406004160100542595206259190125721882085469139274614195138214511266506734424008997226809562325833952781990704217695601736754684216133302037097390720445048377350415531451425906401854911248798953901441268629644993866107760991557573275311066745380314460052108480724122105755755886384491897601696107803389356951413234483811286388217845255955074222671425511483750715521849921235555422647944937365849605639456129013570432816019378372058626261338715407870969429083031951942948254453426476817873437666245848403654074607683496975348454622362192313245592120117204560868502696437197311357083709183840742174170836472700792954505404332176203944885051966102273819851917334847558994750674349528240511967904649274132065348324188388855290924095852529873163084164759513251998541958802283721001160397821831142436532268153300870384981931730956739142486202411883427610036687630914872354489472561549345414778762868508082237720772342088721381627231114068002508496238614678221623316045575745905535333379622234954417930449966456577404713036351491843337636829928006222916857641610451341278883531982473429082785393651992552704979782327182812388976428697060256735189175479311870669648896397899381659529184153165787185963494524897421176549085649829677899734611076811041013339813394191758210048452937565442811754956700307063417857514646397718298948849744879059573740417413561194592015480988366836150944209344665706572023157451483820948206390397577893416656982939030191547480870990782961432314654389871195425966673045240611742064754424612065155086722274470023586801982924387890749799970077529032273497675212115176369489986130457896922743453150558876095388874031316030317608001992166519940786652260985310932829211304747188851966354999446485955270287669416197078490311506460237643557868442557725775318563526307804643256511821945650747632132344023377491856536785996622661607130030589057086238380867995465955133426610546948344033657179137797962673076834053553290688004168915361351529881188355934778098105990321585445816196947654887079469188523355314029736247342863134365916070142897768246851526256716956522093484325259727456042323704151758982779487281632006854886316933875072963006296123384488322703385442122828648493635345386085161808079097658731381679423775689282935310983200920592749125232865891940169696376873859229017268633069230321551385886783114444422972668404537868685778237519428802479447974333872375520100465915516053162400137410244877951011657411352611809791784346448762606654600544780247507986689144405923729548827657250950949012095634437582151420300417328603685303638409218997812020136155736951829053353282528733108566403071897477788711956405299293525049450858312457434809906554408818050940906946267067270853826524350855189081612975289553685088674564390589837684194993826109048445421056974086035228809680162911773932760759184707516963632741693430988420840642473400937694472746440746385532659442071510802264081498184139193822743021822839149589639437535056531767572940699008647242814871722983762590765373982889186813890595633082702849565144424497747843647344009747352946106576525011990555048025523810020487108753183299792618300969608558593971240265099769073331632743831616917342174555745849666661480652159998868492232250584690863520183007332463442888802328944650407184869320628309061830140884419706377529862349203485716862929185051720825248562280074410590381436565910423346987843876290474130364377837250385295992153783371429190710741637118730387881546258118827403249890518180193360269798065200001403377152761753813860337211654625405441360246197122621037932640453963715652413045062512293684495256752546476291961335238736231659576051917341631393489166779473449239138459783594284770573774862960055150014189872345055847782758945413158519713292124990257244481899364382974292790728153660911572637729110190294157717396674552221315383030301821197622719615967497376149126515644006701210049049727220127144495821989189121186222028012558449898267830749827781576147073735608888146993884745168004660469076563372954047790163432705959715296804819982308865447199810015970462633626468676138118609541068212975409838966179222570291158243708873572267597324629174706654471729658024954294454432907627088382487149303934730883925178946465283024039686382636802406156359924491922346723953095410220590930096566743657974078686705173304870545449570511887729442500229428050930407086385512763104831485597825382726413453309764762720011555628919883671348635017481794799451432267309374824329541308301128850058413001045040555226330499791736540774905364370882742396255690711395506318480492069161284240236141562615238304050020449955059173829172761322294417548310084796132769690667183904948525919215712456533298694305554257090363786554037785993478862947777038375586405459825295670667591404441622359120975992691075200505723586044257872771458516505910556953431376424560657396987723449398744118977627880203771148328496704107809938004062970334550208455496975355290708232622954489429439052335086349737991930720697566457256097916965745961702458731591001771483687290094956156431018438328631204034473293230478062758934105031203538673432836014475069208585935973903555101732613359069572803000234828990047461415876953224828732504172312873971752738624420171170072100946761257320115509862636387643818312915937222383814784376058481350322802411311723207882301833228724478967395592665770062082033038811466936961361530669054656620974385332768094090586334858545716760030899370837012704228510857994510996716800746307575480739589400761216918454709131450778898434946190530382860805504564770775262990248895226306095745751107154582061630595124901554218370569481399048282200609129589152280134247762451687815340315358863695168441206410932997262071734110085924700237448329387585469921505211086162771194648932210932139517603421572699583026961851544403632965029156105472397181724307864054227236177503975546298306092591374885211129329632263781314283753439620872049507385510158122879723265550581935373205761036242061224436739250534067192562152092181739547857374027586189123550950483870394296053158758830567290800358851754247964202179888616587403694927026446000128286543867566010220827265440814067618102735788824227653320385978695094944275667542243520298616625345549686405082990980835805682382906343198264497980684098933543203311706320769153045265343211152028622952391740364736739395370160102619137168585446034366120988310478190544895254956586255454301233989350997030252134232460579261352907323173243301080794727047917153906571884429912879220646566421667934897914862303205977224394047010836135944735616987352745470908529220291793361770109958298137943554179940986782849919837749404537002597494118246314552255711928376080382477242706741333082068360943667382918124847102551536611017381012805040268934794588109741289610793127075831920231782269321632312530238628671049117506755051643386663308904165907404667297565895922738513207979124595461452628269770278763065291780516544179130167698671270411880587310077055741236497871180824341754710611982748522294907412517947368459526558297431825267250417295090285133144029893636924052393448403521988400126481122784596700657701773789722082054725434275494893932200707860363523945692387705790212267363905420935393092347491454887516162593267552352580375632426997484262325957826306658186334917765551995210674503292332490236791576615672872790905936474604817412519142719080906035396866988892747478691799642856540920793648843462460407452193444445662640938685359089982960171767175519022985495785258890512039213031505464275754543002008196795781174663030767955856680378046536154325122403300397394370035685332762825419109549376932542811865471478588643547237025611770514421749658927578686295245461093962861199875032645954791796401682225366129065994344081831114759268264233287676240057680770300926254463919951858198741516599092665092145388840149045045031658307146461279898030155500548346346819147070124587798056956905134379875471967036710131980042723180168652542750241698815216094412462015976451448183270125912680245681534772359158613274421662533359210340935735389755459495712356683278132914193371528150597711403047041805197868793346780022734563325296156330562130428044749758022105838181174289372637002114460089522869252130838712294212049174938598509809487167678729275796310123172895826791853250189041589847823991579838773773822717987648479344262047336798684694874493308979664689145740620656104512242309238454489994520501857033024130362808675741260264884098479967194351771524150608023253386103807386105272928297058874604006131397506527300221196908598778375511835973905072958876212118307809712715871337550907275094784930750701181969611341285036647543692998077072462161268418810798999993296272169907799365533543664936427706069603441504166924825623995230060589551583274045582683132654633610057351961820411665780898326981856774542905815530052528410507375919428538875637005003474493784989049216443939606974757841960012134991771685237490124922046530099593376707464920557666006354155840499285619836289624327568492302034091806956423412272632193452558908828127074860147589259022010428218500890229275499042979486915567959787974946280145776319500138705793337136229197490292681744733214409871552182347336239631828547876771440388725714284860675425662592369288186254403516385102801285068567377514177783082523993395729956983357009715773408772742185022472380388281812483007856331983936379013564462148475980147093423305771896643343277591022003626633836144379879619838723278707226247307238793538880002668626307068715062194463338567313272221697220603901965793090465022898645243133256580072749857372886806994797674357013342144329244160402291137757403735953146032289124081756906438315114680988186389960119477917135759026892087269293273519849256851139440193869777276107891385479656157353427856422662681566025843159707800946637611159642151870879433110236197176128827562862629395222055453919334702082651164256151076179267745144311259696386938665266241584527244861131579218319390092416325833881176524288300673181792012017465134842953184674930522310091975184703138624407191632445002795970831504563937075009724738257027297145817426804185412785348909331965797302147300391657499459345596055022404210575820319163981070778157182228461820469022975753890783424196489181488634851355012512529325473014388709284672204511626506768043711971454528315149134901328007897427869154025955840377960981887576798477357220345175124589572131648782236410584075140038917212258421382766763771025416386217799225846336729623889815237295240227058379071711752866004739290310039328408437538065629666079729908226388878232771703206332966032785996334706082547219824192426153742396622090640377860965699278911436068654478796955947623350742559098938157034133121862573718497682023478191769930299811374322335663020850636127849375317901597804923454749391806742345260001047953377016887790160753176208081804800062855774636093792444499805733602828568575464272688148750573349111391969705017332813522677648626635395628382958864542756303534188606899467907690442227088516824844908794890813041090589053099851820100842409827272337838551788393201028626250958610488598991175552619014397527757708222469678693758516264627541672739403059799914181275264328322737990194242425566410663883905548938442122592089535250805707001782356072571949999435824455036575751638797953414161250882616414841812781745919657673885991144260867669424951416479945052583757383414217278403298779809295721590718224904481592126991563564671828288278235787268305383982802837377619907096394707612226372681169480063536124488703944356564380427355521527178457896310692104399033218767035828073732815026755470959006501190972706336958120194591289762003589002129688336819364996422344785551529930730577982773492035921025301349467615157089412014004629475806027377052892241006544012688505030147705664592949384401670798739239029026212635730628332539336562297702392462429481909777474094367775717808183143065898423027710649807375711332209420265637972750862848640647533158171562280835324658729535943054499472322323694984700758760319865824026015769022804952463173430071976272746884932735710927419361687335957348806392735816850937821205048054988553386793884992263463393416565544334008383650908078985615719922441551778819309467052282958599870302360507035648018042967486061616835690153410531573647760493682787592654759617979070992228674968564069851005434530760106614512372374717126900020758024799747792693719649438756901254810332936405157295826540181130313126785532012322909160921826486888906952544317177414386932792177274202315693801666026812570588542419960469145825035913048543987496863543626568824383644910389231462920970837235815125048336451662782599698427620735203243704730316299741207805770257938655846975459156313812438003903042213062659045138897340113597598524408976358024332729646077596106679685912305824828873232648390239435284569253366057259923348890821052713519308761376998635630134724982798079406330051035411209818738525888219056893802344037113936576462870511978927010811080542226514011202802836620235200288785246236586600744237738141485984659844481738786852013629715803523334921320820463227833421248373418367523691253802543781419019340168518148686933726739980771133586235706897625959964081096655993806636476953392204221396240811766804245566316789571495140223005584728897901503151610129506610481441217880966494339857854188107829966401314082190628680559372909648098507227288892979806102416469732928189210397419840063015212702393950055300450853010358495147286324424708694152998665368252644329939657511146023063641521733373420784224061238228051720553136727526737309382341771876682432191407097256263317242100812106680663512229906288359454953606306356249325261299771056687477003535113599711062316395768041481953202184105630414900894096411445092497625791153360733715682226452730677199127215145883526451584762782804680393253192582397562088949295396566653303297548230546174132163418659488501928822197923566341986232321367954141996607876123352267419230154748224607844260596756033878424975753751211930192794350828437813580470645479972161682358490240778801983991032626611701339636860051227664961341832733422078600699376110422804251973853880249118989512239345964019987631913806943411633644445851130781330835557422558929439079839668489044032707382426870495169897508754391943297792010081553804563233230957478052710093449841339668753279677247771402120137227845590663414870727614497847816186777115420085828813941890519565981044818767671947870979016751738303678289906878958624941323495441158024380566295291022358944481652315100561140363485543911676536127101009368350080479256653042066288909620617219974564163938187774562668420153643422338427999303200520751703747608174418712926075528681418955144562677493644412224949073670356309302945685893106269558522069098004747033257938660517101976433133401588064550952871646852403198019573811927179020418295680954270041024845091008142052853499577910335514440180311376031742030035637358305273534869985284889869621965628205156953864565481274907850504624947705629194099849103677797666837071610804758444588259471558942910067245014354643768576723246219300794789764736396224256951407527811879201788536398923984750275378661121190711052694416612683613014827259531139845811919376501727472246537690996421893961611612986981092919959540951206729231947336794771309710377918313576949792610711181839555992262509140136787599935151944994042859001089062210960165549895222418147887225133647829997456183318117531191566271704708234020748682402929125198393587970352467692005701436739054422502106236989627569036379830858818575065675603213316179566008501128450909280762624916190404997374563757918326900289982596973074686281980388558308915650663712421798566174545926613317670328937987234239146516587523105057107580828679572097866168634867246402559223985909231967771507351125877140619946996138884009058645147612833283513378659837371673588272252865461761617646249576001682120302215725003355389355907857309106736872424803172523211908049440364532500257353292099289213125975724703175569987681124661266348226300137339490968692690750646878673842870907148562662787492317803442984256768848332202995452894573774255947222837933979357593774993802055353192195486410689118648407277633603843227181576816028226977694483813296578725789555282383111330867513068406287523120775312006030111424587581446262850206786736717902749267560868985684397075672741565478550204338981523958538001627579818140356791372177008736554839404473598414801628483741379217610538678581911290299521176632832274614531380946810985166043952526425370078623880993767836243660901675660654603778438652262311674766833992448194198212755111873928930455827166542243780424492235745503995000431423687446705956245576523379090963046119110272542171942639728798686007321474571744373250058487168103242272064453658553359523658240405804905495688490391781692799732011980433692254252688809025786122169957744436952100730504517005211226724030213885034417440460394082246285388418769271133231576276749615777215982192480280014284868078220777601920725041069764787878415242614936544147467899616924646726602278046079746413457123703322975395404133605316880895881146161725405593379827778401483630045867706660006496049796979705868273986156655640441447508570791761652295778601173176900041579702705941074850418697977781768098475138241604040864889894998603679113621981570739061211219980513689171830661237797515647328374352405155020064974058314031762623755246108318548595822138696836803989548353467119411935011835110501704687149448924660159153632243130142281491604128843954972321698721838538643117830485124969799416740611600767683618578733153595097941306953669122679959100959200995284889162293262361643842282945166251174177893791579128553575734457340907573546941563508637651617789159449534966012517340946089987727799782470337003846116785279453238066986148567439452908314271848319636981995983202561176085368394990867287361077753560317562015925087028612435605229084559858417201785705937625145851169040219124202455409290947001297385621235214087870500426108267973261472509528362151088250719427969198668149531066861068308533427080090280623154839957718137229974517865988599183111113520575325214964170791003106753286237942698879955121456763952792325588962461784232316885176086186714939366600412984395129825326817131434965506097255317130195553699728573116282876030896484393516264018910948958663332611760939101055956181239596778392224666163374203656540325429198989280100723615909646014172696396836193301585225954731457153225848526283089965898413015486396073995348678447182167658948659453343598457991417237542655872558685210043505518022946836967699676383525803104765259359250341798825880865083464543146593727056347308184891241654905162309340737306986399248228833560937541363799909166515560478987303466151911474711519292238238536323396023237335129921846734787497367631314883485090011027289791524277550970025852102874558871387239132834416252898783533217161783164601711443693013732725881174789140308863926315677691882649550004110733134786296189427671779260635051542098915457790697955302029617538761064874127031285236188597044510839334898572678981053399218010049912783985398233671677824630810693737379785759816450958135792817956549613308266456373402229867498139912803568767818327373444442883219892356328347654329387330083604578744307264219954980157485946044851934071468783564095758904803340934991935511556917470167541119646801010273407485113789611072714452190785344239057143906782887579833902477984894336155101837064135617001919928765786542500130172737032399183040277828549635392205077946818019681439390815835010078132472278257478031255982357446733191706357343354952946051743556373208831472791976782079818424302458727130427332597636697091094885380287971365399321236541655512499198290615201290298479486870382302457445826445400702513433371657153467878771340744280138579471779172737766012725113717560208174455689537040407515517520386320519615852921509986695795595673683967426424958523716185664192764394808681994338078824337734812072811797765923996853434495117098090214330277456909132117037856849207015651497419577388118717432763421838041476863761120848731919853245287629065308129149273323777862978288653045988842782211825365937122141947109804255393462569127997489314908111952920568822543563564254993225061698490029105994971380131074992333672954997905900183585296919420323046602457950288964379089051182426969462474191343245213775369787247034290236823493196688411298189752376137369337317016526309113105145652499569628269496004698359060040662185320902104943523127751204486840388651293867510220344328107410612394898805114795027861879771578150776490488632956940565331331149024114648895664839128246185030182864928152243197311069320283245801587394804934679594354648270493163941532633671090638096264429980629570974711187025178882054637532425810993978004864227697714130622649365158206543129506861519878620342230387074261706394556855554840579953982215098830961916614719433325793335613531183611613430196484737963954782589116319500616720758510561420019568653626647487525022928271925617642032928086286656576028143258006829784972868456676362504685260751501969530780396670061675455362671627826504439995905869266968749628700558061109874281305319727021418560931085903809046698743080712162714300941027959397373392110328338091626689831676365820364690488842826427128583016402597645665402567676963845839126164056012028448890781286638850926252452142800678095936825466074700156864714774298481464225269977560302656839449719619287947001115877459196719720136925344239250263885847862405430736376550422836838962303665243295337289351483351403263540670182272710438586966832326338588584138254873586070362487447969542457579064190677990747253066717639931478899142650811529216693107090151498023588522709009408726551798508829689484034610647638255715986288417637286392420153669200470036732019246932281847629084641136891062180793952571264368723569894259769142513589782617952843767140587072229117776031236720867077111781294634066183281610523086061952019609903249819924513296172949648366521198330460436451681155226317758031833354618881545211300485217584798881591648543000406275923114292010894435479849871694906890874752901766776769900654594836600383128646421148485079277718037580486914237557266243353940735283878807438954933798034054851173078570335425426237909873671785293604791840795518543133360826094857319090427529043460834996363675070950841509429913018801978470017482947094507788320274582258979881902677504928737058102533101573837646459043528913458555004878854275744130888667097785487486708987534603834207668182976301634792445123620324493031072098928994663586375871226970298145088611033865892823001967171448596469418529474014151916079308909200466487137310034038992086374890745630594855551216304783623842153543012173451233456362611232609354003637302604175893743665097197083285468999859516817616740969845510688745049265400300080139088732613018398310976365368859798662771956627304696676749443921442801473798735116731935066778840430200761548702521189266348693022667401139671420459043935729159700984994241874060773251796169408546376094204878008965546535717974962505744254853617055428932320713237821453173905141152245020973695412315110700989478029661894958210584325913143801271575747430318639700791118165228891187071691701037007238356725001840569361781780882619875297795100113052630836038733903336745106312189417707822603048403952340672250153390019695928367386126130908398304357689322058993196114929766526034278275305195782916027969248608981375035127703328893715632880426290024981047897041215739130551471432996406396698146365814500080825270541004619107299059708115365153549379201959590644597096449534895819736638567594015230214537729699959081232961900262562392722039317728281932596670129578442768319514950068566753225833183333048790028115647974442827824367971661776017100461729581881311005032983569764414280300450370717518056275346393224132041975445543978011748581400366766161290857859019742627896411792631976147759197805962429330391313406145747361368449565882231465889675482092806597617582063853937525556198904711560649362818626891986185047455648141645688928761672903494905393235877229614302539437633781846542919566523052523600126456565172607659289209924656337712389009473413356765360153655853710326891042410256217897039620763696252580609544149092487031176555620620022943576038433356604484287828120475886527974859245299388779828516921319672279866057432097610698074415374758857175829650723924895846213651957048123283053914649047706374939509748245979994320296967344555210504850933345574119963929216950719177892928195538497081639342254519024825422443444325389856965676926963876788137749525719565498475819580234546120929036433020180129026993355782847207971014809491932689217039531489059862101500233526507901890696235357433114963655836303588324007314579738118265014148655772182715378090457597922937082668834215936455036975112257352969797169804246342852824351697671258565080459916259402734623382239408479978116626742374784186296606673533907755270150454079531899255271314241860270124624054361308385475437504794330323242898401841096736891093800949649580044035665133141407008414472313263395715992155798886985005379244256532398843320766168881776044671382209577661900355009904079713499775108675535553203643818733245143379316042093172518984382441915884061052809208500102558032550323521318716817680497667231366766413932338879537016510611761264643581453044600586730087379170718968126823029919922418260262900916699355862061740965020627185617524759790333014897567817786693592752158894395337117383698277425212073394804003615357722511528748483950073280796318427111696073568511302915697551823435336582666533741164691286187153419025348959249171247942630211876161764035289052975707793491101897443822006105908582234471235635175432082303325199144797387730365466320354898973955130749460254552817686872393976320361648920167110279432221486590782089710816437591611172306059510830983491600803385130589623781683937420205130970518658686135494142846645194623980149849850761533393974712995259894455422522930352449247355907758645029146527328923279946865027564842706473973761822945856057330561802567307444187007315525437024265437106206720927716470901417327472967088455354220031203309682473662200590851088150453143876105954645328596928685574313042625514234687477801139993562531833776646008622803138035496841790653688436982430415215944598000541313357446128369794727922532962283873018223326218643874957960676577870978055050433032708193129516591765137034148706149059567398235337277750885809150359623939863719912576827698775357619219574726459213183340899355195450272403266373453312669948416614980126306449686486534095633333036944648936418689574175202143878665734978237751958858163035990016057806365350878709035586168625151088012282669858052994850416555891392617823564485120797442186558022923108050451493869269865977209354017666663788939818540035334980538383581837188373865708601319658152262249867461599779242468481988224371631666877735227886055645179620224528653523436389385787456473811467318192187449667198535459929691198390038432370715184405486271024519545992342159749873800987087833801870704625390771629908301608126284449347478642348814834301252800324812773476878266845519176061792254625772374887334954902621834190035235786945425787862205734085070131743767548561824620518455317847064844457341128568648582188832990188124223557984498143704872732486308914618462184890162783073567607024860891188784590607712232845640766772665366872881330559770245032189800604325516715987688450987172363229659238673432906973456845716773374524008745404266295401754121453742763339014351441778504052797740527066282844932531703893857668680828353839194595419206965415289633750022803026273310269224282870058835234740064462650652046010473668786485437205747889288898048933574657946108329053992141880272085229274962885221741094279748726531155821038083052851207389784853983682173521925440003740087819856311674668780778788601663596073384916095524627654996417850819647259911545289385877441521778259746530197764588355709789186291716959755426712864423523344738358235194201469541635859169004657020176630450597231695976875982919903741767333587622329997565558396418523080349817813435364204317872189829699911345859213766241147129426724156895235594166358168059399588679161971282243086703527860584451908812711816423764182144899770467369081120036193024725226408203969482178963366792694277565460370879439432891803259544333406792240962568271823992152952529112448677359721434915223827196744825259463565769484047742890723561931912897094685974831570300906973214475543268708996041947552073690964758468148670077253403477277177038702739261546363917680165133216072491565450242014894346194055622400085160356351607933391393530201354301803421943108156671868681318804351214717379160845485870007930334634700292361624700465538450994757568133785355738829461798591181673828773012144243890420550911072735505830135587355716482092051216965905782923443685767568240160726309307331205142903969162215623325408404575640605103847533628717913009320233184447594726080278970853546631475421898549820531396990051495004214523576888104032926296996280956841386994327362926301654702778092896712277536977960190700062997524295432636878858434180347026713543270765340223572771325273573373629211995958316262082293012663961940962081383710414429496631234807256860279028427453036174122177579279254303508064114202273672912623278712244794113112536882134009837873426364272655333123664588540096340328206762270373447357291920526858431791279218306480014154992721447886129039493803233558740284554323571347151199489714146734352730157252655986602263306420654598535282541151838307624029245189234812558181307963576210177925469317171617477135935321399843218852162809889314025508500348825635585581078180744993305666373716912432480990175039604030229221325093190656756520683024685548994600072404882694420704540196327278664293324951517125691539757084855694097783821393656509491562323346179971889292441355554524408705758609102479970591169466414976839903538115435300604883236528150863025032085625851513301650655078665628678865760337576391653654255582690905055561311083392659688529857059026166981880461952245909619940542948009030899586838919123747425193596215666715108872095185321347356004396384412357279628922834245002756231156973242619140867799126456735584466175499331451914408585100983573720291744170404558037497311504617254297553190922589851837372148913193249230961604282730052600017042430895074665481214852192607169781660003994774114351847698322328935888442923651837917861837099005056089724034887245310137235805897505257740102199172764286356524214511342128782518103792412761187322824772931168678724354075211788374870803738257091011904319087750729227066455621188904523351562262729119802823027175430017690543951108316872063545802621018091395731962362036950797042086108713266895405247948785507968320585879614336955562338895725016582167160390252648286738740437106742412842148961889184204143535443319267267222315175288343012614369339139283883940777391995938245877870104875800574771795136458101112229919558842748378913134365903757956973692264310031038524340601183204521490049563094077930168219033400090474929241335907067161598003793717535174402300042406368915128016259919690468199009935895264089065617685932428162737493012691066885857089208353763415015695743664165505031731899372002268537630170298298392125688264347201814127766433005568196661427171606406226019730422283159205062824647182995700306419463516034573556905585503452169935606794214174925018059765223777442858306847408661785302036768165296988155133181525271883480148391599880551307050306982404953067571241388561707641191308798110800288071167700117493376818951965552156208574197912458710364449273625225015056883667182573596609945422857449503524060325148116651607842560544258296547007157675499755798298544613042346825409721879618086406084728352247583872771958975173774628899842316511688723678043428262004490323912508761417459786987072814707688028545005829162432403767083113884965144810246570381501761447083610653457038594514336026465670064444997313840203772285033965637243484825578862583788810997694783740012167824745281685421278951858420592884647563150131711393790368063367401944966978569583271376955511428541043159439876871946947658282910727272244602491754346073857004050706564100012412517007201099964631705032075773430361038339055695288487619524879722172193005349397881681919066638057413333162885137873274451146130260221255826173103679007334142474436362293753043442363154352923467101002981412596649035587326490437022595728497166659330574682107485159372767694980478975904092290323407157918078160165305213619811333993334717633635389114164000902867990001726046209962632642812012669667439573005918401972984082024047627391234683337483268897848324491047957865907221156990939302998965901189295480311041882733662674194353271399661356162555301894413147098374751992165318749958941509210987784578994702567077218430365388878003173568087035364789810394289772533789972683090475465020083745665532801912763652994079927353633897662294800989227001750889036132294224786415987432540878854457754382336824264911056839915072375593904733442982888102950286309659243151814015104464567668197354227588773889623806735869452869329085422452963616745947472350739894727119674653300521345698204770010199221386232526835163995933422243295256118262165257173258606450656569590834308996411451715489966727258413306889826004178919341841558559541285585204103248476025092760088889989430503118619114631103045729834461641398246619261293911209230183115013156928344699703997814878628704468488803138374682048980161965407340886050817707482230117329411695666136789119265944218700617508368943997179879689828826094462188564401588202836366779929493391933524672574838554058321550627548725746396795176488962078986990853632742943205734319832138870219319153773219709424110035767894523640416011012696378790121279523383151187421090614335919233795739286928715903674133220530517679497440714651709655139306599368961900361535969194842098336172356980412189358186244589828365139875458377370908512529423491389776867401241991777466559139186643564712633718829841655652534342205870326450101082787030741083561386694419512212884828876285341104004028011220910458560823850320829664999826321648611729910355488677117575421698906869720195532722725069595150279433088852565890431678190253999730075791012567986525263622362922615200989221099723719201780553075181540966779131298243337081152024352418543730858900943236676394140588840533244134135823845959808271821448335859284222432608721542596060643700657530727181302187702444129301393997287756052940974492313371655928213748722276679589790611165061490855887762410528435104688037290880139476296492069105376720831799874185941616716781859258375001162406026893827734428042653789421849887063881517178084979868769744850978590340024893422986721227841408196112252287850078733893070596549350294285503373719598679234221755207881079056079093767741383853136014887253271308591643009448797747601475023122257707268967763562397254568448357537937343494227625528085014282780390903826625759957803961806111257076197022184185789705805630533431845393489837426062402940850058474542117801548821578996435307790032449327026471085457314733236350800949473037068880066387272542168381168242289659274796058649026119270664229186476095057688415404342860163877434028230587713602076784897115579347435695080268679054594622008054199207519343281311740428289502340955498866327419896977070807075958072961295789401611919071707819454911198498490320294423550026869028528104872260310251591865519898361874991558452962679365584112605593267053501148927000961328941782482559361307704276738587522591238405147456315360614178873868869833623999408218964760982280439216985559007608810830582098911057992842469223176017089059526083207219762302878653511282212675564517205337041648126862710472487029101722789251229714317695680559001011129829842656820262201400113531376877994255045912128619654474717547472163059192907479351913480537136106075570883831470451655175113649676498510653593671973903005768098348857972713449664180696115479277834689584193511115782566409175989215439442216996780405908607911847661717804869189989627736667342287444981871103697974700865061945721375128685855832085667264919983371101072648441450969474751899923390844766056159208964990767492555715396172747228501630254308157917117215697679569847567574605675012497233810756840281293994019456506553639082143507652830789994069715304723684206705920336584277946842458465982665901062365882629879577359475531931708170089309809611082375325027955167698161587043172688975816030124432810092694149115845817733802081216651859201937643556848625966845791494787757210227755426061120319207190501572021796468735513643514225679341687438333461582669339828071958886065751642575471714706442394908314223529683781473551243669863464774554640884189550510935536588021067971789304157355839483919816680968251071419936189178346871320968360534539486608570599826470269456314093414691823682400916966378734174041305425306543762733460050256002505961824297159112939441148233495734992765315570806987395529138110460194085967991559432251156647483768790480157719982597592492084654891283617907485015482982825077234550731587660009566847404618197705570780373616619446648785468487891186500785316678986191522645540064685488019819449986977496109860902237795271345844127541423886649889675207666854875398918928038024446139838369837939771903417087668169970801585519940689112759722488276518315702226400679636837105497370107408576195501722251325158082414753835595607295339673838613340421893202001317683434263024625525911544025691269987068676982864319284013810871935895350301308506028179238789330472888706892327817234693224555531000090839699687376043867520293657697166672734531533348712898104212320469321157975638888867370603378473406325547220215514866189835182254421744806333268145444798927092386570980801278282214707682485509066128559857339523470452637602931104345779467405703061002731148848997107209659958391611679053750266953957491043182149303149313691194839876677442951017582139129041955173610645951644874523312516369586896301219676936303339174001176928708585144015318871448344884587141082014583619038549555434978868180823193185890843608709697553577293531068846986015660480322629635367304007060716910829005205020991322764491754442370663855136973771504431168430888349702947963836290994229152211794160082590900252209850164830198938694091484618014336007870608654062078052657220957104796532046540068959170267146862854941083341507100256281585072326139244345482434978664745449626555736532170842927208610726904940176256848453122793203891203367829861104098818616070207721186504661507316635262053365526798616627288521488895060923902958416983655387555228897222377596947128052822304325857386733649742952706228750760341325411811511966977040756165859505844352920835955614737644286278369536884835334857846719259331612660151137665548587396563419505897119033279514857121936092715861471588667387087719825014790379077386603913878923797378777057264898084982888069245635131512006938399216444696820524079868593646586375885741110540370067719850797783001302992462542819628166888396075168800116750758676922803228969723251235185439009059756234522659853168954606120334214937811556202927945458635258478515193455445947826726230567086189729304020102166922120163053370841999350382348443864551649768528515652267759959872289496860079148860298153714940613713959662601610549502595577113034988247481007696948305390223302366383959468192582204226405570165412593329503915938363247463374961721994816953712583145505841650346781652563643882314027077324122315757186501717632590113582830271317272535989450758838022079667271382071641696164605449930110609293900435865493554219881814572046926692542008864685763746577955432409298630265794452053635253603662848252268875766530757888748885278589000856363696383118205104158072007020539219563420790771117294269230911428699904940750710964394237413040873909848524127678570008137026195661238300099716009537524888319364234177490259948982767352210167496182015996187807316314885039563596782545133619284701852941214596435665992381788142050296904072852540067411237255426815295996549245020153117029550318260024685267994005795407100538849568551055785231203651029735015770933965729507448043637007250623254533410450843763136906268164356516737475363878070581647637204934574840133082029494811145261935438487806384895097536630732797773258823601264078133992481560084024520682702609499964299628862023341621400579066158983790876941919036220902882275389031655029523877340502267382945601862211611980505594482723570317565412037502485453957628984311488958158555589077548934812425611148936079072259405068147958019150730555503358857252487253087207041572990783155357296614558213455643696534786373643775871477489680093019632529405707981500638118661399199687738720687423101899051795811568635744403514726762668234372134468057353192431500830805484124023334073157242450754181813816021198702132924372015652226364777129541475078024973628390688939982077614391576940282331128029828860765233168679812293789330715417322312949048036802930168839764026803473901503775580275106374877444895916670109950498953911432092527776116837308892983400295386779735629430212107726948003745213243877513460416676093095654072347515383978534855362155071781074001810203433933276440128050502110955887601512434632384462152698268587413108734804877133150028644919517107412658282875384621269140682292668422362182157864038123883055029703356756016068841467444543613274659293883306273632252801677918534522577516163884656591376050470078440064510954587555228393573357595270947335844034337005737298280560219566293935763451898172113377237356965188128332583179189476353920824122010417388609309370873303062945471314625638679277905426879299436090127665457722073548725622231101165675296165163287287134477980752708866218556758753640090305486687688988146479922431394682034609633848203645774576594418691851678878672073681718284831224173909156104645138760622096204611875862589512118201437306195073280155676401968064045297157875868253063956699256755131802859001917985731722010263366538165885104813856342377929031300558860205543685684913179596836935790037141917072158960781981747321175510541000799530638785787884013902080054904644751394280403185337957830899621841573014597930523879774345023636711580473873868145352326995289384225077428889808512133534608522543611469409586665417858284846544973986780801610577491093113024974672975359291553909756246257295708316534571802430957695838304793465501059747252882570293101879557082873806483010493273029101133794930276363459527921043554575690182639977690498738061253052041010431955305402868454658734220795226613466738103356325626788310958937589865028556275163238946036550978225962630818869679636893472127837113706526907278461778977594012694430927519070083954253556160473009117840252420673951924616744108591096289308144684465355400902001112661066229643209133116367443319259591886167133273958384203240337737771423809853940409172685738110374032565270727942615625215032327328779406454703444273398508109376030667102911546182181509617449230217501390883817088695923323525189722205230141772383024644198764984878530662942808505761121555224405322878877098227891390643825182751342799770913374541510369511245047441316509205494582474793546632786829135849634222395961769870284587763720907789674608352369148181832394331466087856868246276523242944092955603976622919569757988424984805616117548077033343713618120253419296946452812682036861183544813228437898098668271021546348241497734682111738630539838998912060799819418124735093446587382551598697487271136077343895258700646560952417488753234604356374356056827774380740269601825436294023919957091083103184792836484529016569329858610644781283594207289928865820676333684444686138443850544576826783435521953372345475098161429672949498105861645456224697923806704796825693480265446273806493206180300281215704003788642855373594421714043610350322378245369704105785077827171650112243165744114308327395044287825074545366189182503370447767213556920079286162764564813826236362274908864636416712556691970338635745773294470191052962646655592578010158396729135073325204611473432934983212356436405765262446572350584678713806327811251020953686441346002916623551236541648761501645077032974961048884433544602834466672700773182562523091231809461517362711778280800846685214725772806336587026122563592636209925940840620286797816292685395422601593017819302387276388137427193460388826419276395071858901587530490744397804601988765070485731916455692560457291048281342456285515560801568881270280868146781733273449158494813866225197347973026458719271521016132020027502515827181538841675297699144257108711980594467478409218304215920118197357340180646457371668480469257927093838959578116703907774739619619419738093590973586843713603228603532654810861442588917723836538859225476183644397634674471551940936513165170548801719631152592087030664078664613039884435992704078962689108384583443819707035843793787266333112258800026574734169321913218638517981049191202819276934526489800555083464237077345974496089588826724834887486130928609894805494102415350567119274660007661449803190205106983688410199591775115343884312075312871322415044235065283143906583521643238100014467138781340400196585991826424709409879378166681251013106099204498147009309213182141895264561628132249138749591448772445505866484283027381788145513732534093190748195678397899525145775412553795483978278670425506468931002907759330500562361792268083043665220534035577223869635972779434956158829353727748885762893120450304931550237338583640989323188136059754917935284938216660855704112701579925737532063681489945322817393480721960929867301490704995355076743541795358852961926592901095386943670864605077167232016777411425406704508335476887336266821780956277298299382777605306170701021646056893230694725635694707814708131811681714280902277295514318619401675828709371518453653920016733908153221385050659320790528174430614639424440857189766577912061569917656194870064559611806105930496646781966400714972683111981884639975599585434373535510185531409145445226540661970547388380276682072802779734533453090922320947896887365986008802100669345617258021117467425477539762164443449912409950671161158047634132168557095474073056245426034253454374309157858137569445800035338464489950724179330093741071082724049018477683434285716009858888522098160432504627526632923896065319802434570253097042120212980270511184856767673770870479716131142426043175723485545473554595553443794469333576226458206019802278945708329725560005471373966832274117942615735477067327442512067965867900586474618258797904393784800761493486116785797278519057501774009161072193579759621685069147719758370605777253494339181179084132579992301394894420963531518153071247531074142316999046921932471927621957717742035415703070066201510200163511155106129227238596551699210694978265071037731593730422945119138537696846060608400551386380583005826232243729722763265941685484700152965183724783732023266333673535822632249424406913445844202070969743849606228026606450452048638219246985974801918035119158720219901563911947189347386698053580485998205515727305382426506270514618458168539869695195705046507146257926763452495668821670247274809645267819839368454298846442861290676428584457456966689128670932506481464690517726334848058234927822379141402929005900658723942578985396678403652648213358097404340942977786782895298907017055390701618740130877656141514482165538305008387532675780504541988631635136345428616456018088286262310761254380120502379716420989310664119968400074774809077531289706731516292053202931688200726775211778655197070263584312780040397723810825966938144806028961275928568007473078087620404810700052674142646017681076777437284623765385015317916005825540419201069217916169091870637703986597484973775975692679290396588836078945730569736021396632068463661398081802625771854911552448934686528814904542236584666775641827572498286361553310376557984472144344100080423825112251423875128400951288194298908697463815856268476142701508665160615024018282772610238745245164060570791013881751709379202992674330708123918224458922424230325234411065456481866707164130675373552894640871240809897244472920793193625497141722444035834236806530730248478028187364036091608499519978686525212605936186789522356613689958066031484913027456278322818209537386670663170124769720772993463469728541038122039139350227936534962333009846059404055014678539039595252418398591101238588647701403543911783704509632390437866217700737676067448805413303434852404652205675197335288169142746246807338317706192325060406998028434057379885672431671821638079442330976428192383308008272120290745422740202743330541973451707132443385983181393749423369400486827744064034589367285597597597957840338169406032741919037423743180775710970147264411200605793679387997933395419916845762817049395674319545992832386689025057577490871068811660853513358928314985134287567055091600443687071722452260335450444584570594054745963212295583257534634367456855679365189123091866540705270702717582241551862300592585814562338066533972305599064482668124998715280144073831511805253262698304822432208986581079887300915572063987481415429747676458735431484544903604606157179809929086588896166690120568190738657564288624228672695880044817063780606774882411288434019755876591218312885961834083243438675575217696313502126833019191165109550970907369439295796467996095400292014359228780039232801838447697667289709653371004958781956309188355978038442421186812223859705218305369848460696826156855813829234547129741688366170974369399352091982801250498154553244264674734333173941132512442208875839606192817952024506756344989160876669369672120875136838884826407982990508335699033027312544036382486650032191597338088787068449298132732249346707378992831128440578951469137774824498631414348259252731259913342107077004639473883336731213794374994333930826187069048988980631238654319907989333522435255306902329997074514519319125464283802302581521166614855337983950913130301907983731250827216724657183396259217509609574912772205809090027062930952409958069203286815786533911387763586834839505825647901291904252214296723544786870161690518952020607723795768495133520162670991119686202125853565627812732485725044768389557425875219138938826555520452265874118920308356078888899634025699451293681297552446464155843509178378160962754458272007440925885805001808386090428095601190246438849307363861090075316531995728574166033308014104306371299761802286767452918578682085066549921187463263295737990029520384577714682494981590563661991336544480793601265440520780835047301103306902930040651906713293010538604786308180476604053398807514684347012545857120527249722138937943068230211386822380195809116344353797341660164915078266357610723820986748363568198132530432031538288663939338443895164337390553153931936854608716653229969001387448351840418202867928905273240754658798034606888457950151159728733658083476779061130620697280021293014814057582783718659374276300387795030163308369507988597212130833444068469274489178043922335274254754507518542538331675750866844048589911236620544882128614536347869629573988154031045356760686094713047451400926055595087045290392793360465995353980945164478730958289475128675472890720608779219384973248533451562608749398223721455308747183686901183650237807870931063647451644617480082738555420876089658931141173657578677134666562881714090790948212316149808311323168255480930244527675994681716920433450829092808597290743423000908457389151291168412964016771669746396249097953521038131102417098330293520624013292821604917825000408033619776889695442376030730154003757925316375150052197341872513645204858846113275710998471824309844450447058105465348721042961622412610018419868410507522900037514500737071806649070369844448697451517505651628521310166131381264009188411446622803007695492142153213975359932004271046979774299381920708170943619540450046990735726687179303373844394326578075674740474242189951819525013941621800621355163493902178914196694282590719968151591906944750177543198789870346354864704278530324320961838590312109749224231303928769406276826901348345205687457900394588909243741059088887843717142399408618651105569379157373905044310194406023246947947126860254053125355837994012112112577185135420610492093676614023912742762673341220626629076113648866339391666603019056143263380076437969202480158071410419371903219954466079535880271384774785300739428427373890123133878687741303313490862888299317478127473517827341240436151532554510700527681289839506070033939758256183694545962946093478826532530513289528556251229200736296027734141974626228931612085010987853829317783964277233836218689716341734087162747608126338823384208498890394805546911922450355098868278602143848074101490462825629391502860287403917890837772035564293347500904987029834231693663424541354169615330497129742579594934022324441464979648732449480892367590754350164404573177565567022257593996896151914176173889867158954503962699873118355749169162610503909655258671859525859642866466192253251443730971761467085432465850563947996053308914973671349113116479034207409560508630413316858386127699882546732827920092250091681086254399283503602020244935253538155222308246553958711559120719062052060449864682905487321102655785213744591455331144389319151602013595845387238026896048020812532673775834577820403345818083468174885810100734966578468071282621520402561462327777725799829358478587589689640351387813398931464101288002428324943029012191121388776950625534642938910428530920042027876579219146133048446027952326798838907252616114285547155746470261757032242635262439953371532879229134018282913165817187627481208609199807521666433547532138364693694991495397135335313672745151748225450902950258735958830728418718215932237612702074053147121019764787854968980040554976536783468747693576866013070022499427323589917581839483691376528154424980543313247644103445027582770075478300470314610755151462926886438211387771402781920255057685539336513012179580942633521895170595926850154848299893944776717244422618226625131586961332687413601710610743094791602764830515705822523607966598570217425775299639892840411416765346610210843663072382543309224876803460270223596972620306641071359528050394675115765444380807545356714942799721591157384196456411880306506241523678515397258617094588275285030442862148068977983033883447681590226260613140706655292842557288171975358782882247207562343740122777280514704069960868986674507300524243098410566031565862063885981289621523570264230460636004675748953315003954270876009094898494216880411226241863685628756116312741107366675820807860743513982605293215860242292507006697179073699294718997766072586732838812983408625778858098804747338962366574283993701675538730465470708699307224225348123693986342333679159836486203303257906685505238668407139239905002394111987326909191018032219544853001946847106884591957263614667665007005799358159927274532147197662667013177143557931152467451455015450903071632990767323864593192829381131974454707505635218524309040960367225181952799701851543531598308883665589648438180250382955535595416757768102731159878382544602694538862547153680235724315377672215169310738958158598631433171148989876502102880338116427215141238402709397460265935866647411982110075646710877795271029066821967606426119097676814430444011951150932493938480207859726733970774650110410108516053699816114995678340209799958265148976582071182767863338782179384270747623048319259447291181918646478409901482841611096273591980387016508025459493271004112770135672317277690352337924439203229667642516036351907094791269615466332012860591100850553567877236972442688109312619509430416691144540651783464150172717040480441462710839536344377880387380765094799161844418132787285113828396379749067363201273705649511164063427876105428831464259220935370122305594674395152696706557586626298275944992021765827281024915751738713715716386243764263804541730493051720902120644559635495467286191981368515780069430376912540814540560584367196581280987182856434083860085942616668988087278212563632673779326695729117553484577974482398103440284408702297275724625375989340201377175374914392546735508579765129417009066778918496769537101377711763397211639462890020479702111230173936861683144774246633231438307724773762458829543885494011916511023971127104418088232507937284162616374742495354848816420088677337542418060865467451208237269425452041614477820350270443114610470320593191886828563308904924423774838014464617875641195588477676712762040391469544895958427654612524296799614948461954232536272427697416787781840116634488818269243815424882036361764730940755174772854872308957430203995980375095662145001411421210656075559198270045963458621161331574980294980000141982741629005059100455627889592486163047332253704966242463105707426909563178327732703236554534658629687033606714403617211274151703758159627861310367696925737724357957543191014560802693279547012461069262154258975321827956984849321061199803652337134386110873715780210643271417169071661155081365999104599462727421770389107315905508805216957918744976068891002963053547241175772506121988942804481886077081490898093114489952209355067336913201277272192726698574152687496691437364981975690968400009772974119784113423597749279883968134783826957400591983312130105498331368977909852126687232894467703982257795234345960480601475751107458396665162319401884108840768453824231956812854446643245879032459809920383787435759241978900489522027743098526973249215212795759140799024217029648854385422862439356102614257893617218860538163868870812189093162313786213600655134831550280452250314786238534292551308571204112980892482213072145343495758159188784161442134472418421283336699795735159743333402341415101818732815213984265563167108398559961234868970812332188336072056502395797004775534785833411851686312872059644899651921387052074649868617353071146140960169994269660718474987986384837706565510297950276126333638690580566627972980766729125490092214598990677789361424252807015633040084559163474158772937167779785051830860971099038956616005346567119441339639102275007914223203760551224314246176537936345506607807607160700876849777065160805033867476739112274548589356380151850962941934502324930206422430660603798361537274476711831896492684405474680462211001040550444895958026815819461721043856137777977578780156083449524406166825516372494565089413784384285511491610015499684583077401557123738276170214409949022499126585927672048036355374622953629666608952604778802693650498168608223860162312240546993649996684138542927233383852259026752552301411645167018125475268536809031929896800655478525472677763435758258129763691762715395495493748386513670511798111947528595370301600212522271587434166367871379714638854534826004916567401789531328993688404110965022523634820436086335018549120858446355495350219057471097815173254328948021909866317319424364996037311395006869085159954179872402162797393215358325865654645255271933077185052572885890859060959642157346152725133214172613115004400515572864130116476995116524671223177761380212038908545735569421324179277553487546929585778234392799147894972825406375337900059641467257183290593918811593627570818020018067716242018992817627601228505616485877105448128421428385795772101717860366213165562175138726462442385824878019579118887724658875456702578698465301293742463255231856896446525792328848075483989022671624045619157830578421101192158135480611678816734413245456192761737013760490745345277226217452842874244113603092221088259868691941388652410701418042417407531459197894977382698928124233778365348516900550437666859340139292447146592910308367587739327126637967628421788371509693995226043572261407166867583184150256662775678444583034647644533515502123618482050254895101779320246282343946380709265573537243747273601437760872386655251708495305102493415117445912490369668786270081187659869198269044414353706389139528729122020591895694606960567589879508200999127071439446970733469095722451683727902702279419070613147745613248515552501867874627619382919995745202162200009196675638291070312470299932994503875569469198278960279611268853762115005394757047015105394282083160382070588964247012583033263996899793140210608748801983031317392891934382955568962457731189775326193742098513188487855174464975364934771924961860909594573192108229496592434788282064531488948433425159570668695248112907908812942381665729159334781633874411464363463287566691651162385791966649406509285592504136989201144116475980177411770252589349506908885119846397488894869058441383185119383036927951519823595490195146155803907162984584971570504201516988878765553757669435613053062059944130679025349288043230902303540112472597588296139662057823553806997232658770431868810408711985109360416902681095944662076511660132332729962519135608904565754229218942350339001375158594092511748922588145967567942575097137978031841872521694509321897049992294048655005084715996492993397313622847064121126075603407068471282066287229518454433319246428793403399630006725178725505503997121077171938383504692611743972779270759555714877092704960192098898242618342375458729994868460806782477120148063891985459220183377680135350054166602738908795323817811828888140348696004346808938606934088390918651086101822507992775198923577271426157718702762252626516927848490021757890306600131724051665897929866726644072188639537185227325443121775151760220596346356871889145350559556175013259200314365900703843526540806986900871495565504035177177699437391645851415481453407766415406039837975435008624623956440336584589554970613007487221209687727940361281031042436151609365059563781968317519524872307848543026075545947377776513701556491234380206036228644472022649898889513777014851012611877904760400208167730176647397031617792150609478339253787692333367953843631291812307983404789510353958367451503912841851505291361884369812485605812997205721189516450376408801556204814957711806042121407078446047671502438464093657078034326119000875758132607418225623052428831816991416715701839225450104650960425201226918536701322989136666417606076548012997425785471069380625082744207915798831543257831681627624002348564289797236632359913200052466161517382566396548123066346862560320508198838471766104264253966052374698826251612164365750156629236762048474757236786489020962856730497967273995016836048096005426048109805369237004333641433863614194260432633590881576716237711147781418601374461174859772788140155083070907103546012813672458447075262571233806184100563159679883772113373933984103477261882887107832091545390065160204966020842134350545616638996251979256829167111523945953553428410847956731828120772337555789750900053590716832046223639341462451646654595983618065282433376412589225442669647927332645747732440239503980146782388163657779620171952050814110198982668410672957342842732079884559495152362486755293888222019718318974363113752919916596784635022222300037693884275633379984267198238095724701168346886707629511317172187130867572312829470681545498951906052884205566555722661547809118435938715078966200668595680612049803371096449024812825608486397871248717940797142206719833773357018970469463702017385685419667836188350176663033468978329776656887464883330907206200434659553172294384992723147632952541159953853177258221701279197390536150155035319299536877391611232957066928748170429828321166595439936726967700472979400335770025187937772996339782640853140187541693070777643551259169581397749718862540271017784742298716991590113075672262820471843811686070738061765565304921364655731398453428441944602582314310632270448879941170083473886830117494513805524050575935489448396668674639656111593258008991963536138237037855412932194721758301368627789994940410255228176240917501779039993684891214986813303213838169054665728388278717754956290056501423033210080290778479821543689235865708743259608959803913196677853528039551083527489219789035876169296489953577945245035609057979443849317962749677605632159180854541952468178708862642469708174275197406294857255713730277393476195698268098978632847182985491805252016878150936908353902187883353379265095149794531948374303644531042465785907716982386941085186952279049602049753779194758112163784037921795319028299175904795793624050697313342183552815438467203678941323109989292523803422812868998747433916108196102245966353314212005316513138633613107323130584727701364047806249143383182431928859840853729783281804064936422718923849798686788141670790271221090949211681186071936928646158571270698678572178131113764538238934912038826631329718275387206280763746170205185780074222025872492785472318272493723786991191166288114797172509947463051407934720934376993723810807755138178374964677426670727804199895910004982522703127191906166371111951339954701016503717792775698322566347809614053917309855057057420936689562647489156138943329384434377549679373682634199532255670474875183376154277756050843252902885716155095172043403310414628962417310030622179637684048693928584307318152569695000263705873846519929562974991988056462197022488267247213157369700308735760391010720688332868273882508386436967426299280214741992212689294662712832294143279857304421323273622177589077517262034938060411886163624225447697085888393404047498009532261942285286579311629538060755527873887053631314100071237389489364600678100330990770582549835327722074806540285688893281922995578095765529769815391639023046310746922652113105708839930111292774380213650561280330032013642381607493463036459066937759269488210735982685864961821286943658534595667258318759579466462094281800221193736810918606284720587624614423764787516762652270869065580043904292221467787961235278966863888759111871323860252782524095842102783204469350154978121610189774457847854407649357734061188346585775196839314310343022483616513461088225521160585141071763523996276569605701801478191862377840830033841824700494970235297388931154664501166217756627856028773611839650558608671082407883241517317198044676888217161347307418875300476223647301463384867691765189873432389596921035893264776511602769483661049618332597647992027290904555088759739459406632023305675256825665785300221952134799332129814532181716158861602551956109589863440158956483474268940306485177985185873448061374272320205499955534632563819900897264053682951051766344407820502216334605168533345852316916915238152969883639437647890081187549631869545774111049040607047829842254159937833475288433636232390399790087047395259638701530957755144726478803922801662798356664621107090050927863481194591943848138540487560822912463447784096765810100659941711836445356540356196524504735400415337000618562335339777196793104304521915962034526870004305366702693369409184108629604947372139019997365077338678183030849516194814909678007278056103777231764715192013420651293278736542307016823647920906286400674598795859775507318035109478798438791885822705537259424184250110923522893361161680347312399415853858303874213732876513439160311052579245351045709104851047627008241710227572642011977448086996028401910378612104817482743176112495491312151903960301493688156575957832329031498272863200928957778834827980132764270762632057664166657292816260602058235943614000676227138981427697076261866333643036441857885987213661957024767537461854755559405287044466206034851866463692965953760301341873886120142021761040515459108464844291217095151603057222447297356814906013287514472516180143112595888937916985253366435271573956210166538491707095126321381413630815139903990710464686856106473242157688599501217467035952998510277619371257745608812103236892366612638525071080659115613603272817562704550724397010543271648407736048493362738468158355841181644777609703490761016391785916889081492340576860018275738927166378812712944095641559787326698658842887413503358028727177417134084163181964332115124095176241095997975930639056968002342735480667541128019808459665495826392353784627455600516196646347631274278377052677944680013086181586011291206708554312071945646589305747034823175847132499850521483316545871263949209952013826219553660148116456959324407465551035696826655002825513357692789959226337803916016306732442793286001351170940081459281253190108623845894911199320480741895911610140610700719147809045508741175217913742707071781921300618140517584042453679238880482036831960774732997938067051723248820203348865932255263066649003414970596630257732272211505662023475100642328458969314737254231533890882480080787908532368367479864923747550135364861730313001905056754123073487495609155048821013941831956051577848728082696402936932335521645244199946680244569254283296074341892208914481590531066474268930092250947402990401022523858783370450848501271269930208216001527825780985069333183036405890485037634718020487694408226597177151961307330035661996809149242418617370643772590551971375673324030216474582299280768306772473936336037760618112938613238771049142376718331426653756345059295780852943462603437159672951847372412368930249113438460025194500537361601495928392459571103380580884086992218232269347844338470132894543026568946322248258004389135550774353650759609722587504433735140283293147325178761483269540190927216171280881291672603179327332006876352144401026257682112944088703802579802846890061433392019787041581225932585210625326752153732663564897464206333295979093241248859848467353774125919582079985036267952704291817511934672696744649144247272093352700957086734089040052032737608899498749458894988793533099155749778104786687716773904479402926320233390111306709129631167677012040039885191272744720613114632003720177271352363783587813258881297888090159028400111415283534358529888948179005076080406942690237853842608531980349934863556565631113286169236643086066334660792266595537896372079407719739472595887276333722208480081466141626527063873497764012806811007352841560533105249027793131994057667892357669562817322583095029023807098519062643993257475257094852675674713172187939074090623509505811416799908791389555487171865951190611935333958924996712051656604816035967991898552396690227737191033123443377820480069277482102946958335371817412405490853487559854554657155801967916792005824031332161452217847597528001303180047010393658651199018326273322609649104429377219280363052292236118072043543170523231579388935759899596886958264221552191778547859756108614565027882605596072068938983095837231568932687622548221668717111887240459372199577394664078872705040733769783318605416856558133792838916422024597942110733712429434927370329103551149494266002240338532459438035761376516872716871022849736617330976585522697625920027986860268645058963963569157399888724677195657198471597899683773739378112686357882064469478264106274626382393478113894381869150573755476874706014059385181215900380297017472898414973124158677906890053225056481819119124625526515957258252483992686289730057089183995317555614233771681213618234636777917401115224569673803462188115944311792962638282915676557922500644717521102600333141745813589937933826208115994434130134213291873991419426497225165671640393834563519028664996294790113107125406820202136929118813277574319007269540677310799152650010502413818964850930543404450580064624721483824903890598434624472178075026906014245519859730484128974565334645450347067477251304876534413552329389670504625763463497476541617400652897809204369918693860404312433367247875314981427055174201861728393275301083941370167278185337417613203047644087729675727950817096581207319320383788812580770891909291914317972290919526898428945647169674301107064408558870425411575977704064664442075547844822481444164666076593634254309772724318954622458366251696691362929122912618618562199212303085170800308936919233471075644417586568838750384823081701103135827215194925830947913981584581672902762457954889846102768554924656530096699318549455657586234701532754006210571429247436756731188441122094423818940628442327687077024448430690998772667733096002069993325737870809442373584922707081592868068286445774863021034990076434285498927186571498837057382367946458488816432236885616526696552883932974201562726587645737466390749683677351771575448875228133366351689602906024666922845492502189868560701516435909097246964877704812239411275803570281713888139944525438428833437339911820592168304977913278307753168077584887764088705096451227318128063305149516020325750898292267908101838943913590363926543443997855822030447654457001769985556576173463897813614634693290913171084640126539160185609844799389371750605859364273296385177175992159187646791680045347390399769300908188316577289854284610078389580539182216149508847843719533884470406449354191837273089324091325276589121727446424092057800627807193883663445792525677017000241362161116304506125141535723710828676684434920348113242915179901411748531808737057356483268889515620058624473354793434146704925009159302859322780025925364395323272623540805685620297906579496612426063967689607040796415955769895073755131961840812014488727839875246060828415365353157808849901221942620163021047372741236512038275370736849288347383323784908268689251530071111998221275729450875795614834846364822956243804197378127732244679474378787902889930093591896916919623694064900986961899303128186030580860976225452211587486592820781791970422525976737133742300877445514001021187076926197623390846319466485223368396085640816980300437490836432785924065434580386488190710045982398066250312921603285220338067568233789448582598311652558617046184600500140797144322525469245404860106163541972464744314255468616068442066935849271434179642058792055463523353286786425338792360324877020719799802612577879289326744821973421241120998738602176576281526819889025403214995835256265353936931445348640996681429234396460442410776889340980629909505973785432056055843330686174798644543206193793948070345212638283481452367177413849722337369414086737051078128483823803803736156249672441317119694322709410034995123614418354350504913575650947790205703288351340160829950936005346044321719434143346185956966934289875536387952091627160694611096216955563131035315842515587859397518621752545291596906716209236193524381337081751558914043194025352488700101847135776785562199673646170102154342042885606645820676249963438236495077187989220372047013301663208621484786310197914421994821149471514063626123798509058794996573736872645254661239136935498849819565604345608141052889786456199869375281846161217604321970007400395455910550481311816878019599404311449005816425142011337592740522927842291866584203719473519406613336318426920447111389439696275009633835691822963506353840096875804981330014329911653709921400842074063483303734418799272909484799285299493971422864522433697492280757814027270847371258174252079905841067342918037941352115253466900784928114703656742898567564798416945562223345678649857101179355038082385015178627232253371314774371620641317147167717561110587976679516683546863342326918911591262016057693425478945411090527713046316109888175687651896590496086453885615300641357859247848724356379466515899170319611108640006884564610885706804726196770201377953120607287732365964637310122713815731294552636269988095521068444751680211471276615830576931398628345023776157842244997519792971229032601691018740470527162075490708804429530999296885585359903804749619559702597786429703399125154757418959767224696668910006617879291900351208519336455344577859091082770013385097483522511056958661737998728397670634289389477295206532517495020879082141414194455353746922244791969290001722559928540174046237583284190866266916767190492599188851861465480481985406027009215679366107591109713832751981687206313673912149900706064439756511712550341251432319843010219264314609560398443657023900690371412252829782928628130867546920948157111386977733357020842014813363016794160672536146876133914462066797194361737922797848816586305647076299970131722355016807126678693792028349560511033234283874328336383748189983292742461881283231644561329726897712087756442829270640222816663303384704819205372841361339328221654533108035554196522663161151999103134972124971324406650485560445410304512545666704066538028223460103268042390281258254515936123638715045995230870145698821820100670110350027223062875422479680960166389414932259348277294735437717861415376798619495484084914750618162450117147861857530748029055776423529040394353722278085434226366250605142297540521754282611432079073700385353424440232714041221331566932102974476857200250182133929179979331767897993402046516271639914997070708823218420669681080314650724931687707451653334541417959472942048936763914996368855144747374578694116861536327117529790731004107143922116742759744197768368159979825385332151160889281063901496074101434385262552099378318888424266117763644464926676378866931152886393537937610053064385860639424163216045761416514441116181718255338260836679629805598081258964527099231241243950812364327963041943026464134864462056984264197258585868403797150354641103599430989720054781949312672612073272214123475016974248400849282859018380908950288398573912161197384253243053254399343700828189387595190845472868759450759891169198805761650513003818385169773215937854371612025400159539780841605815138259679860631425770746136996326503833118094399071165267547016262610128864013467324054201445104289902700257552855627819434634051108287343957182353079036547766288210236728870732072267845298267282793496197834870022802272179565181183759116744666264907329652470032385661462881068735847318173839791255476530683989777248210909245844022861098160282105261541136981599382056463260507645020227027572563742493995655181271984656057124623586442293003949458080154431958884750223469550891234847493117627360639056597898132348374512412479193682417323754400499180290013195389091262290665963097942152480222140500502377853710054424513174970644801883935230913148203896023535353262974058612279513991623250430474641111791115352689070210843347036357310604430916225619343380855772736064508414557964425067292120526556733101745552767635218452433112162925249904304946854879203789313877207616831502993824688748881817916409823231966516392401841550766630283936939511644405791230795479431989148225052654884115522279964622248749186191399343574349298790241818488504393665615203261214483373320000257967942389770937525325070441166376398198816981938699154396400157513099323970489232489063397798674779061490510143077215426555995935836451304589271441276633056444794944736669394773123367775156232325054966273263673050713701370950668603627101193407868159095526058041893021801558981605970157506803216606834799143384890331272338765149222433283465893094303427517554767521825852494070016410511273258164234354037180209139554903966270340393537844816559635155295797793531252100947454892205813807381879833657726648621232849565221844144771259443729957313227869604383855786214755805934442582700002053615053026336203967239667704223961198953679347834237425826974669061392440672453933420770151640511396285947854909921068915013359022164705913075503592960202649016562248533134541006775572124359849959701906895310164090225947887128477705722469344461336564672680139356058075371101720924432196091792944415645432961234053347797235605562223241709533852078289534380650427691158016166347375722863703307377494192844136949853423660089625102254901205975917995840493150866000611701935487481145284004975793995548871555858002492186599909245985187801413211726826693317527651047611253468043919848692363476592571102357298638981810017605198719308443172894377962430097951605542232989000180904659527698034032125271203575055994863587686500788454931388909425863080647553861976860887076371089774100554402096736963035289530546919946671212004710237733356302214067968992768835330863760456883256928697951726905100435472423248119165326588514526128611292453808903626850589869677393677886038767024747394255195386977617401931587562681831692293907997979383995020012505690345240701789335466609028508586164315479354257888384396630632805731338232977211617536512179297060027872044271208843500410277990807738540812353682448618045858987974018006644653217342439623304329707983344728623134496097195509002651981851514100679030985042651547172044223741447362767763215421043083692978009790359342945834579485678945397644034411919984277213032852492630067575307759896578515911827513319740746761066655418833765665579416476976047423466919557740075328187229461021198473165413226918694824333505957711683247535828008616178495563622214810442891996786971504526074956983997462948684070014602569069984718620991910890627461357026865827823444319125068286254492695198545396227249993635557254457281723088299197567228836565238483344765879808913458505792754419735682473014501163271573451264424898067650344458884015782770564734297535804121536359155026486687526485280094230941740658889636337884275087821153852167142538965735986992726069822760300381748086250169093630200927650251747128078993650251121053811762344421196111923003325235493627058868990294747746077118854367529644381159773721794806701962691715619055747447932306628666521751772326682657490324536345132843799455578269586749617531986781644658407560128172027746439436560295653267244044249467392410169939887053983107438884464122277822132018443971894213225827106653186433340762904598836238557700998042679323172946447059287277632905752756534061424251278434702304087879525501662008630271989706545971441204510961028367410675971490588378852165306600676789528473238938234735778811259796962797609631386307105101128136318680778642931482951388828671041786643222761037992347204521984792483478672438924220547127704974808975423019377890365915615529664402732918174153573744191279711721390192237736999879693210142575126399101369691745797020984245516388466469086122284953358664207409930729762772401666435514232704967306580018555633056169906747517903698604401068464765938447033059285428193535121628573688469522675695041795568946310221232819277791422523095943517301858592777197928040020927645640819741017049415796765317888894074851278571405152973219431010369348921849802444274637852736283812700184608438980172902950149041779349982367726707902441757947321217288420356848325351558817675455019886124263062282598467126291009257757621418782561406265572999949443411425484668446300362135980423347601601980293854207697810419320020347533886188291122069428279575776494159033803850804973641125621685959944167064633283304557169601338831997447060907150679110769504290820490502018298672963840994572483259638736797655769159548064455617135687793011824744990838724413630180413864843926578362269729646160731761126826014711258372258124597615968027215715080688339535210919870831135008527907027077627045199463100355369331509239883162182654548258975188375435255927581392699584831057376249624546634440917967218713298846002469994365226586611098026030307947313654037247448124735231096924527869771487906985952874349005299284243820617960724984892117566210839027738931690804836530233927990711803103557863833844776631617069231356250852908865699244104492428624649477010913014700538641709911721341191741186800293741470794204129364506268892193320641717008865182317798882550150555227250637806784981940287759379999057311976402856938533618518392627024408161020430230204527035930127337359844879016862558265591822905273493065025920052771986175131938256733665739419927361002009279007126572274121930522929046500530136152704172408500670894303454497431711656121914387653638491105401025053854284266475981734281886704868621005540135376626838811341456808650636762099552084453934754228915788016260462431767033488957567384156675307775907890278679708202471863593977725042283307171484288261558317641918931081651612841958752829824604582982520328720049964692222402124068661327811264417237269319252004997164608482135487486288273724217135759951953050949744690347465154391681731229055848191925803243955768359713024397717235055157046301687678821055522510373763601765536958498895917622589511419971995135851544979366771973538602387836517424530045597048937261903425269774447795922471805279587173184285810214945756954095572070364850778629786008600075776545351469032813990343153788707989535272591749593443000812199778221263996601895000597598216162884723207283271014866274475379992467009806918290234632016526253006395588248689262763200234020343111415682114881269410413436694506925175249630966458901857823599342027359918546684975844323146128509266852317822745507944838847385861603128243469014466755718909917757056382596550538509464745960319450894259977748218591486492459986285454239589434290398729129905321246982323428670652228004600068246811301673917828084168052632576976216330998593554757880258755249317675752241770488063011001198485994022113672060235406627453188661933009052574676140435968214849929050754713425381079306914293841146548921352477312130069502179237481817234904625387226383915564001455572757948482879123872407849684685490943726338692853146497515620982520106760829838786838945311427037414494962896608745297544645669989532914175110391773794127767493366915263163448903702742256137133428935071802441787781030634354031122224070683570893342607045107256508852074013875075619854223885114431438164312247774684206867301725903701198765208641173478076057330887136095978566065214832728617365791742183148081267756287715122418822908860368370815090472094396584669170131164005461054556797037937589134491360355028871731096767163971966840195372872735420034506384602218654227386225399902718218187475472511358926042953921626948470198282766460444616717654262171220830872683009857829474642193229218432577585348318991584969753104556615030849570993838426389836668196970844906178197125570039402822967787082489378979587587885135520967825941588063348501133813123865389311836094411693084187802492388626939089066887398850642180022372197118569152167632701872837444874037483182282583498749320537661424043424420824275535431848342356229143169983470663856157912566374120316977782924637347598026350360592861334615626099239975722533699571315881227882097632362242019911949778670503096098212137534934437140676082635785449448121962574044139896403208610960726753778216193389254990363315717420517829033466794314984508286796961093445920659103289405978191536804903014800669207202063668848934555150114890610478241165230023962374422073499272591222765432101883426372500662230315615934554333214563285780449227082601059764542371098821816060017646553984618087343825779573408565995634425067051194083211953808678843658288951959668325743563323222895471464352108235535322162288190177340327959050781338340139436844329749091030198714517125809870777931202422069861904139755804535994517485160523133006240244779570750771995137783721138039625180976238877841694328737522927826311904547587420051977242263189876465648223966071389588687621473218074434058880135013248497128335078446441900482271143937106366291985708314040802432212666231384641654697180814237433398101183411293681044165787061900057059104162258875532506282084049139622468700568217329445267305171195120693772494493057556625225754236771533956199149339330080157623227322054735343421812830935307354308039633301087005691022598506235917145571224095947885049771284979916409707217511988579800935795474727945672413638136074240872798331631257002871312556343210441936905872614241121067953994750320638472272540438753839799420654304309993270958296631871259840738739186989730336564215504189331055119450045387070296005388103739904398279770566719627585614687637186697287688462556910724771172723815920877677387517009455436599063809862491333733644795691435427440989557669170711013686196069636275892461415041451367341520142292071116370659701495886300649869964301244697213176214750820020857335986264383072429757411457841543434365829718043932833387652057061504575608575104722312993151719540225048729800833994111337078233418735555045525184139523767860671798784785069631652294982165062351535159582944310553325421751221382418214708914567017333802481779245575722425526016535133011110671849989533749213692415501138280791664197860012245298764119189673835094828013952160293244183787580107151610649426977633755941887561974422618104509723643783099246336706755780019006461486216044381239488608248299604318192078802549798153525719617659195978978724251757661446573212862401280586515894660719834902249883343343276434353880105784881823584483067543685767010459965446614764158778635617791015527603197757204169916602044578254883782183026125110665996755182757054264079344777705580746199665072837362851457835111429124739808281520778630191256280362954304953224179665309363822848351890217777840818189322302030571529366100518833427672789395384944815107314052270186416727276341408765944396378310400739716685653027609148266561582343863629038189930622475600348929747155357326779891286351209802863779231488114970068793851652162986854982579553810837843525416925573931860286528807215133061187333883717233638246804736754149570555480722010399360827073143385257989127038603489965276016818760823574110475055210182811142276636707321009076874790431626710305776314678230931404018811918311424218825400040503821507128282157601573556380875499282234645589101898267498035407663359950895614780346009177075300787149231447506838685955440026943347594439497086340320020219453043269436568010308483876600801127302213719305081711218808712180159869474699401042695373956143557173282738481329116836432008460436845923907504643093074402640594691150599816472846478810184925686315715289011681424760775415264785382325889534964987857704605593563503166331267362442644147087562605454744038661820120076441392619936751121287187013005163726244721846621880975345290025341018656805179685735232794340034226176089067683877677780482375420610115265642891882711333722907633864028116897312325940096492201963598367321302621589704059759175393016868077411338463205193295649690489579335751008405790945695696296037523782619731591261193452243979216776918493909160988129268410594898240316844000864162516167465289426160091488604380189473826311764027386146614783247140107347660365210409268049893570015777137693370779807642138745271390419498575356846905144169657844171851486765532134424224849777766975944402567355930110607726515341097382485354691328833543705288703286935180697864653630408235031916606225935336771780442721318865071513411197864394100896547193466868985886070086667743113570021435185551001585982636880825439163576033843699265009570797072146300865014988126629853936296964213225913288400455998628062976995029799326616751103900683174125893283173614541683755054933724077048132062335832848936802154758955384556507965678870326557142765041937516441995029760009906264045886097838338264002315653906687381863191228337424553090131158713374301765966276999721279143813585180714452572497597410692783781162126201925289331478890395375469144014156042559846681488287618230945184457313525921176101269523337051561399438284997153105350601204239544310701675550650101047053879740221637701877109449575922722049704449114860820153880895975506595472414302519609918137938331451963327141928127905109987263489300497794504121194152448045962424406667840469551067674529145112786560258944381232999794183300397073120336867565105216265650372688391303474960799810818629830923919261782604991655385436451490689317888130091724695688481403529098368735596183725650998699650158339930768572345924064531570524938690984608716148558373949208177299188204472834528895480121010324553245672267017100490222105956322230885994033966421079377264523065812654568378111356958008905369784689259710010182178551103035700199574729309742809715964315347839753135037022057592435204847489504324557872720642489687862366068179129350953608596697306851901985360358107732053354555626530133860856466733768706052381800855100661073314466237185374622349843161458929965724519707363377752066379257776242844459050705175214852603472129663579926371941305503901224963183984998491407146532090343986647233205229294692818379639238299283902288391199460304400180247004672654578749353685137792447385143464840641945932622547003041601329050703909189642418795920750646361998035471460806058314847872848728763607229405399164049234669059774244429101056399608401357648297308079989418998929007386105982712390790752613039708521849710616117607773564007930034068244816863657623964792130162057553178131101583281502408863368340877715774702695950432357017622118271845263776867031419572360357712514042346916203447123824599362326697459298952226331918677957267840175644931233955930622477003444714908882675960452636536853934867244654799064064287161429330567512765350439285579613940552518809819947155907914668780233796842797027941431514253534176058562812874211248717144030842438535138794400882308934176469358068548779998977911443554293832642408794584625556860727907718188465785317878292867328187567257181126061522499908557920766829102928000660684634712677454279326421654215306711880282283551901262139985367834965617773755468440783552746394838900065217093548583913951877359853059836000715586669318196955203609361496966494351939217618186460860378544502434702477220424144768131069665622059887564307140908113643765794020429348298804395975519193539282659660863786719218903579658392930384313516565355813883947387639006988726160792953236952525225952654659740550328830010522392536473387683023820772287386849708975528379271585523961742741601078295349269482938387660677603515031962311325590129391962328084810150220958617117756338407366422750732029308618359063239018342565526113336355052468699079525181688599147568842740888236115839581692523429163473883312548537363967336495200129692258166734961050792678634623170763436772814780082018864345922913439455908957212454835194895338243367724958876526671700687077011838402288636163185799691874936141399910892884156425688854897205535193940607175209053719570210340107785195096134093081427077651126379023356894300857447957116634274989919584036044107679534284522302274487538435199271806348957854294369215486410567465066344792079433806259333816842510836518929922548744319570276828805094982238580484117578452855145574198472668314609472259006707903743621713450038536756611675960561050450788884467260160669838292502782748293700670507011155328932799657120348996001883336167691246437861736812853900631086073354221652533224230795519412192092136923003937683401307061027223477558974210327001214582776871122855830348068613500054699147702927331963321988711963238026439247771522621146840229534790421842156140856859554179779127891838535335495667312339832482681915256568854548304756446298844943348151233567563952713729400984114861021107860346296019930819027955798857081163000395666616332603053920152369466104043456349330072656725035613906208942591382771236328412138142503731498516581702045957450474602828845009547811965277497509787704434837638784043523573712965189400502040605616960028304714556472657848931793187580151571318468517184624554660300652015096882667952624859674483760013819003905505930285914660324471008461226459432114966967320596409339807240020637955184137410397046006098546287276769358566861474287871268747143694722843837350894074010836888436079071202470203709720514871667746976293581431861105277444123477077234593928184929385382795626397018626737213425565711571454750372496806876784684165061097685239956315416998592334548638983482317035864645041154592095224866293147383791165775285843891402936219915504632388437003567984561746784649062903081650908840476971853631867325567529371285478050753180171247207456301178141870319824955489249365856828221009736621494473213992968311638076933059020375262784717140291246798902678853978232095590085975776077818658712996002596959678636652553263367932116310141619254930927011709930580349499900027304484987430497937950678338037176446810994688052890929571236336439115532649576643353565692303185201636373378827366422884751973950547513146062085157316550845564808910081506720803213134642539929290558140656306310180251994661121327360702517023037920598196503594109683507057321774373756105946745465560029277470037265626388862838468993787970202217012623084842259527507359748746956317959620007162293535715682013865440461200234480132716444832849727303080728244457676918305272386565809785497499719162505196720875312952846227217252294649576636191546961898504220191268335965245663599199325822144716914894670071386523570584777665557339590560930136306681005138611207421629120565523622404524138596125667772338468334209448571354720946424907742739945519790322660513020884933494653462901279170929487124554421727595323116771155274810649371446936570036137583263912959810823363081572742705150440109202066639553383750998499370012350673374624198369959204715887088780651243388839086143714007143002171219445383662086865842251941634737015832608242965858368380211534999099335457574590417916381685916482836180445112844554449986655587131828456040072709862801902279732747970958475216184529258297125492662060687375012000776495314993905766094095575639299806062362952160125210785278569127854555518605799985528144012598239162290048192285842033422943872960876747033642856326201320748457897710220952067813587502239852710722927486772772492079865488985009654196017940787591093742464559856942358355257583882885357494678008700907317345231566204907556813968802400724721223272749259081862223898563619635709838766150006401827041648112230669774197786981937282696805378409849756245299221702710913854867400862440554816275117945797248658726086055580656349622519808229729218224652201877716132519744867325727478318165892054057447948246173172035480349335172699686593324576776957125112762801353294315141567654077513168287040379281809160402295818268432153811485925427567360556905922473177122469502492040037208123405644398324053732807031407252653959923705073565168653302595413473755289012220627814093871642158438194096276051586121971961386838521716036563924881063138613845325711003346496179932997956174400020113334096813465835877471573952063139755399219685533386477323193914640857432690391595077563610886493973088137908181636673836489056664816715899456873881984268066647770098766463286003725245113629199931390033633689503072881803366954966090235032422581296459234629401301238977390588336493633389419020594517505634498568660149963436961702076395898251281763761041690836919621183693351190042762721573110558773698757074358392199964409120391291963232939292890173221182205930364258706882882954447445277851187121843074909041973623391027204317686284531562031472022305670306444939076488085657046869968354575872707347090215351761719116568945297884819143988599575070644354283482039124915058082766247582035467144241546758589087562595205080011308830062990508156557549968928389806922911668021953981501980031295067628124818756671620097258871926787972631111842937986579068158896161117567250828333388773126638029731387034052767678248910900491614738529984497009156142711008414870803061396899821493266380133227339481925138148315992366248965267782896867127065676915305928275783718025709498131842464666074865433036355545042149277279400013064230398313637102250132421396010263988897924208473220817882120756760944195415481507793459047229648828258889686729954687902676874908134336149822100867216523748159051199154408971013544797519851025201445477877760749859124399563043509303683997082905597326364228951316071191488328263740886375927402506425553688394540723316186385503930659157955935576814501822415950529964108129383096210414382935896502706283316848009274001173849957806002306310780519715055259827981887073300799151692436177209034394993129289091883535696236611211227537806932732431403818519829640104913841220261671147654331237605326355875000546691009117526234075883087519483836673533022752850957972754228903267090321425141702944272636655441951380277065260778381930171762273321259935367590719881757386734716835369707769601649327727288030893516492681977258494726649755907216288141988259256894169172389780312176095434294138804258900015728095076509274237232222935219440643604483717411884515337938574962024793137672607282022636415399330601079181290126038500420760945071944358829734899634278942685448011407255400172778668014429484283949662774638618063583712007016223651920506830028087205508643813200998432458104327989829729697210890654735716320041993821577174207067421834286204931517815258132767523340839800519618025867379466408167112107647553964082068421940414018071596834073893751015503222135085942972784947090687775350253259211697752188540158991271978590495678745516489560784743062306781586235910735545246627978947993161785001847401038300282068115548831257842325217972896715604674041497562003402459151986232413809868387193724042539300045890073111079182650150465832500301502987077764146050812025003895988247295691983249628694148259156211744864638367108524453582911652112213997461089974081261948219258750385463776319127788370701858493933458866398885888595819929467650080066325889761032248147734772716184365945516695986539641277721792491997718401702539925666599413823883452181799232288974140798242709516353420736942860889670703015604214714237045904023003050845815321552991651308390719126785425103766790554485610611255609331532154534241090058347729861397272777358721907184275531693352254865522154766998019257705028857506566564506929984968967404376613483750785545436647045927577701975815606455203442012291725641452720002530539154659342559743513301717162765869820769212364731356854664466213612743569780034117588660427447157249112582013240562614568400847405356985965844129485756828135686902721873358569688221292569149519209960017943131563027019596023856364269256421294228311767338961998081717005448955428674014639778303551894019397279935710004065446878235890719989591531868110286177472384014189707242141331402488725236724286092523876977630087176957123354203599914811922595829061972369161869979906001679582308820246806105256483008016805489999284691280541771451042006691649175824922990253193607708761608034445704916560349886671238147859388699993257420589283942561800951341462573393557922929298582657325973564342848330493467604231831145814050088489287403419907449735107505732456165527446387842185269816166945303040647787922974244985418977874438524052835286581707261781666532541858843586175538482532006300364614457204693487629884890741797454833565192235752745689052973166500406120374764700695512767610701698106714220620224263911638383737733977500164263996232370724770532764741448605131270721872798055710405704220460804008268418094415397628702045817612059375871979076262663671194926529330810001609755605050598386338956202785425082017790796998618512563811447837175432396774842432452659150178016769763196904402979389261814865071870910577418913715760509784388266284609330585548338431281947183036188007117665468673013612031471221277241027576930132482529669674657390636599064965274026633150618295472519764704118280966745844819733464896878764281607221401101413086950922763046972185739454346179077739659704935132574818402740910583882149522204755672889264582630281931971929713173409064466337349644798798944603288789954498072608953577596016251636361255557485795648022252188305194563832307091980871747195789157996797270252868437256301951770807800004737014801900724795688900488156183430238663230025453602517596105468928901578212696320832205526338858340135221240556538723551550810975740292195371750139077334141236448731774788948513286802125480811950516643680732442151323973499765801886939135934590339443845503107266698111043024957470188652933516390560471545370964527690525881762211694008337535924443384063968471662547295237121707478646554119595151772426887742099864024708879449715095618320715596856232694424742743170533150686601777816482319178570870748553698857469215232659657185507765211721934462802254081341433740583784104949737943126496704114812705596392545711774850743487286104257093496030993692056604715661469931616605667675855280151342480550518618389523306083892890865349470690647207847802957350869137501118957547217412011121046927699758380324380754299653252826729230851988312339597618364276247973576756912413220051191006108284711047123108257521237705638232616305441527593735640795833930431946154446713649839508533136225923815894729431883523859323587881078681656479586621594153323063163519128080133815472770768802335739975775279993497533346482826194384237583031004485618273593100259407465240310991441604960221502614977807111747168415739459092539544958225481443376364441927456530886677944682650020912541320937808344229757559588586176157254462175329308717439846175429399841759100404144717667636077656137009146220378920087564357247286592405717662024597029284118933880484385661605372289097552399036896526066505127073183392962342900312424715498290569738212285152871655248511346899121651829783723187370580293223671044357287639969849382074706379822004919480447539295100376137542379140927309987608050892744141437066446063172312362442032083784419710288305913886914386805503240531924221738083977387691757003308857166086444759016750537454941321692322156267500313483253536521987847680564138678720009720642320853910039609624146416959927634047685137928583242775631638731741902568714489752266531730682291795604193877694860460135453992006238395449179466679690277693935735781958949464310625653872244016177697062536243859968116498977370816279979382313589618750956561365101314971176203554683110209864660098254349272094705437361157965496412290882259639078103766007587332503896093516597372597070323522260470179562449866332893565963275811934197813314634680476042146936654547281101878244541937298987598978511054731678068611747110549180036428017198926664095773801834862221223411233204003029193500302071517926987054419165900366243872276520455227711393967965915186666492402363915672410943602739195736164039331755097341316374373260686803292722251469204449178007554049725249801161942082460159609349426252542057085151382474089607079436158605949789730213646024036909369491371794460159347798608811265426029126617813929964904048217476303972098684130788470948808336530127116499982065051468421318688982134101345364868239937481024622900528076569170285799926115764337929572990507796170036405576538327042962597401485974633296678276407583573639461530715097296198022356420144431885184855807506168533512248793286960464112618131995800066607156450143372298856692100364001313947913681028907556311198817949414167256930594826108397383154273547463676134539662899035413538456650334267897255587398879478953035593442726330305159803424952014125678950190238014481571736489995794607424073481243219424007576756096388388862206074436435931882643316764700161279810990305989689978435591397697302900313134431546457219102298066353023890667913741399738050504255130490807502895463741667525746619021640853287688743465500352385844513825323139621398550985754719075504859961072299258593933621805953448338682331154110548243208570687175888176458916322311390429814806351796793801862036971209265977470816712117028325767249377781856938818558672785488579507815031497417552516399463794285792850758680587288493449994181601492247195057918591442222111765312919718494511062527501059729975518484067822916880918103019353036280123150777906578414699688597141131278353071605805475672483747881957658520759296998663911918237329449493429355473043983681563919755852816029873692509154232897012563023763013797897279705750837867530441726314581197429624100412250003334226035873195119481752888057347929621807157260193979038601254949351745285768466846271391178964237760350617829437986831935309632914334476764610066066734439952834440088312803002554524477885062605934677784550458353431903715232423377882698865958450975325533155865078165964112799516358433252103173719496942895428736267442955385224295456833253165819294466248891159783071743869023852932831476496974678005220446676538608873806299927358560529251861864899973824353055544739911569296507107538137618169111777442400825430144734309700275874646601910852173932471321113917954979591398248692032450989103345255850035452088776247512622545986396464117624667783250942860420069751955539050359971065324236647576924886348346909290245560124287580475743547474705973656703346667552986974604243167459931525073979186824607303295983995355488502060029312536845965604179467106746941465362242741902367302099696276456483463479289546780810425794247210343300549359420931327164059912604507253011407790907977161248560568456828057137421294377695815534970410276320181281785986971585247448389001779833154575542469191372952782554297516543180443052131085180309374937795974830570120518782426835626597457325757804486241783814080156744960450478885519628945958492317791785936069482666156830925713162436313920577613078780095998315688754594744558835494792210499389378406110900640240410740781825320167014959691449591447848797312729083603976045308856790419313921839780668707236904446528355643010769502049691485584287515550368978039670055048626351676859419826473544858510564999492600844082368368819282335499681685153290378642708147633385407466405069239222948505223452744798012628940553821782681982096431762761567148546978449641331420062370583254443831945041813833437951588452145347120981604702859107109016760791374193332048095793776522666493192543740667395638404135748030667894135854167708691350185873288274687514563997232266822976709000756855009825143828887781526445785651466854748531021968571265914356346928021710700190806665937093699930701353877287043615823528368961291682626189015289790508606081060735322018937106828575451578489560357234218881003860912895560184811412137691763281041137060443602813169425520396557970629741865047460186842541225360279685974742108189545402573782493405356713196093468827364319512995245279911336595391474275325817354704014049049142548531460270893016976683559285360259428540076619622359977728697673741285937947167654019563444436258562512756857295611717086752660437440310209719848617451497629623724638927229161016054593726352979997530897009518131716426167946305546102729659357020424662012355428161320132867098928562409825458654204887125806750324004913059173705184010628267446103329614471135234387676113599433763822566088402152917729126207868189369149774232553720580488748849522765254403272557918146173345248217428255374111138948903058719630336289040122873213703661961767071730297017685990093309821473220922180726801350062921490672044823348861680222221173626829361967507629577033121221910072420994278671345843539893892883440321564647192574635710807180077481358507801735043031965272430404074037015074068084391824440592965225447456593813609926544259816222048661795386582153406035827126915971973253584323598438354722115257374268182333234995385903331034358982633546927388402229368934017115335860264698069676257353595048228865953672662051070481504506676615531008273800181268198985982753089189527079457124736337637018158910413464947635286008079277340620867964101741733565849897118150078061187948794708105683674462576973839529524802302607352928994150862604158045679610672228644168924370761535616136041360150033344203465819148200943146073848821383740962043963636123778211019434714492217796874057634210808017826945773754003913588640169758821083780137617879664293784184547749769080552256874531682453226149567204635818711945016938784128495893850468975082612572349374100691725591091183266876219370411912477629292443388476065556849502324863678339004963124457510473777896822306337186181878599709181049710233812361609180758155405141373911233833630007919742969544742748536888747068966195905526356438120109356707665602462361248361481776815169883034954379360099577242080025197105742980243401148405937107387838788867429457988761639580553987874663086085453163180940245664598345590571378879276267465368329849049428211374046318633824421535438064280392836945804254601740875578741116982276943823803156611122031408660699457320401130322066344397418277737695441709696274232410590523675425121973527168315036179246603514306419848812649213907518767015730364006987421146097866418761126209036851992967528272360797335044369667669642870155657944243614639161655250733151096538388839222440486063212621382849377208432889927460657644387628981924043328577713988879816461589179151960364627065371621985118945943326842164325445551188817012725963851221966072224929815249346613549920897018484859405177121337548665053462123942792439277830941052600514811993793925365898285876360482363195592543776980758980785564879403774027969401432136148994248767733480983837302670703100111538588042047553113176623117081386769355163360054890386335195409350075410434472883281011586962814509672058155937165511855755882760038175219945466111231029559777638654228644080346520851183275571452208236620555486700377189604995473256900287494307705328028290097291222298429090571044293858391264624881075332591966884376456458296903983359167826734899410190787886668446972571861827110746683567218381069753456317852463275296055539145967033919951197641337653148748351626870140277376770205512007186730503771672334038329545664295750965809019425786681052497480356918499718656037323792476780515765930575481851437209096053772524304068141779524935916671908215276120213703707708667567640404996615536461205932866690871263425895255688336322784159862304700017525377654084640758466739458191223992725820121454008962823219035242044353846238501264680374711620322849715622657339566273049922498306816267968510608095503046743074496940366219623642185893323188734064915337223281691050468872599036042854355244925547470324074721796674850573224098797149449764649200924888266427083253784655966193780522843854993868472581833976577910715143059297203690316551462648163393432345476655292555092420965996755125175097818500701398309643933448088475218985758224549521361093190641834915269428922956027214612242542880784717624324695553100008153132342515554738700554237715891556904399111283351322805468703065964339955433063850077339174620253436040434404130051902197414965683992233428204292563284065147732066705517910385671977643896663894769782803615357445697246332485222724568635595764578813663391738362725648855431768764187947103098510792604136499216253759499119356073839777365873530627645304279250856589301324102659761255949652992532914750517876742855163908170461523586611708473485509692307302522369470943717682411287746216047192134218532539660897468077718706702955923406353766943982552867019411987307807950476520146157858776884265314784741413090854662198545101851748431889467718513654742169638632209689987494613970731065859851650812688371636399952047651471996863823139164796428203346339361066575704399377016991171982849109531381178172219072060633912199281207248811526694379140587192364550305376912684978331224994394611106542186750781915232808109206148101532861964984677853988658135283612567593689932425363741690635681087017350135912148265948440928034996285043206596273116867956904105570275643550893276007891873774775412308827695952382355437530995753974841969668559454728576891862140567841812358392109965124094800637625658355054753961982598476579984748474089116957018816273771627521416330747563598963319540991183141748347221698004561591299578088026155230463675473739269094784071993075097790288504748596692847924114908366622972809130168521614490403009514846451840480603607393886753318372370073964754407059503078525481222514186053461452609008703524089951516985518414011342968552035922654435260638092119391515084484656905864464022752979723388871792567346667837866749664856880138295387843095839996519050438092839796753302762269531226839620378765733621063828074632400693363447763228418513441116803917154283419578349251950189571005600022762406349543461915391793294668266378356889266888181301228524201121041794963066627801399747738494365464153490137663507906081421126893458531141873732754564752574857542407342446848870217740430551366475683157950653573976272986878848232031917689098769809629946933941259701864663995040087714906175627055177687935287301108232911255616026831771736105178556459939194037401981977402297592027337669517298008102768663933003154566153568864729481565787844201419254857441277289802249156276358901573104916741174935857855246742350772677094646586152367085049045810833281161512925506766864760053466258946268881395265035935615228177324142971682578312231448587041414061877960550175983673661187584975320598235219375045641320412924182047595947926124268318761116106848257443488689963160100380219180291680396393420923191383687540830339420062494057995814290518876618830639769081658409401468109152298874357262016769042435061620412232608263688562704469775080464268080456930439674489578084989663323002049063598414582822000657420474511495350050932887504753430838133078590792133904310041725473306909246209802796228015424710093087323056421724487075206047498738493399833793438232017099092685656990930559826104737902991028690414443943483248461901314342004560873647100851270975262293937840020796226216435257886089639464409205776200110737259183243363700567766958439528466157256419350681647398675550864653867185470000279437484723195953656505245896934350849611033086466553696843692587820028576669391918156091842605838076651323321134512782789929260439887619225772354085255555028770899903822169829064796373786537951541907346733379540161238097228514414817987749413367018874507514425876734237634233753661954494482670108058485108212376136155774058090773879071512915232570454005616754229432246553159379274080720189495487180838011359278250287734652131267512563408483375144051809210636210403859131499233963882177963740404759973493988298261895389763397584988676558146359549890842035827208993991731271351057780480164569145093268468231268303026519896953763240425450163862698171015177681745216133516709704333247653128100114184532850334316914458272608881581961128835326241696344383723276313800333272295132366405880878618844906834225918946071076884045867113417013142034567698969116886664560353961895065337405498370427531857429007698345768234511449269674768055413820966851839799047820169900895882759888444804274858190103010023891362822520448022614926464675209578804468120568517587837786480949126272135400408152725904794979957520107592955322574327274046375721242385959269764879926291269824059524812759561804451291569201475247477139192597066809938120819845025068668283881391736229313388232738729502048567212659148782238112474681691514655675481690713215944628522759287701056410225044792347050741026639543794861127563737705384005987410542333151342265607408989052541360388377052391337248931444623198916676184214164880079948896466569986304082489759421922745284610633448977072523422539535067988630370323287839685536058877069139475378414966269205139006891963355713498731316104608426722289996679966440061577462005801954307949248717874769292023049653580944807296918538030052659496770736691917707321907200530031642854638796153938090155721009165681651207540444402769975712003389218336131946550125209635738480686441791321411351345666968099322772097525988900636019627214365260013731304876777841408719798179885728346809085192159084325348311745412457532445696299941277185962900963866949650535126130576250164660777131679789923683546999805317180180254907136512065871113891999230915719108852610948319038930590360467583596556685101679295160107085552583077935592765330930419031335980673256186035504724361672930262611247159493631337489893873886818737346033609219009342933968815786712774182516718207304224867655673091078807453286907686086373344720935141112921245584152650424033739213104201878436162934675518013039992287022420302377507838244556999821962710575996541109568779319140269258753993186569972097452074780788959766459545874279035106491493479856229846591043405957914955990550481473731056600424527217525237482331139874664883291665502806628817045875523233252787329456032231689639350337428002992124042359776215050131796243519224332948329149871641167967258501826075364855559146302482031436153823195680468109021638269128180644245480226230223811012455681808612323968770726324541086842551107935168029058152250297946913917368763817589448883179401006106497145416255669054167552402436661746022619664236911770035127972640944311643731111131586640670546938013423974361686431221261548477241079350533787394496282333393165286277485164045003232361198926962887260167592944269656737887948188206544844007258608005597255520464069459195918578697155491802973236748799160840554033979738385703534529986198019588388991084545766596921490152648815483334178908311999017731642132790637487713987225898003246323265312787056424124677799974573507665841563270405876042271268183064025267374661827814610153020849421081652995625721265224592710947344700524301771873393382726986166562353239990040572166986715448925290176986677050814524324736934496201967281213052489393268793827383210152570124141527958512736908976801145601688945540276950548643998502661640681943919727746000818293151835298494508654657955534013930255809174354429695954124620200133883854870337740434966305564202162415587920513571764671236404078922044265846839468651217761270455597542709869295030838218191742040185229519115367737172024537141848654502900127005979439304820877652215521069624150457501586990425295099189612085928176250622376823271361452382510902933539263472269009781053512119143957714526784413247484630511294525034177805890767363746434103837200192034484938605012285813097936531148923765906072594595773270240423116283214295638021681207100873174465123780834302478884399580241244230279574565312906717880493129851890437607770462338682568395081475042527688572555133644208955358914993151611943846075927529751766453522188456048713980547356190111010994840169992491279280950596420330113410281146322723342982827265752486987522436287708644906622001702532463408091117003305700925472452180475239372062958452874355564022770607753549496652381876978470562400555732400439326060100950492968984671204941510989588994576778724867824534503935739137598407559038702890932475085733533100796824307060484192034984647531344083093995130779851045981918463527404562993614736929598403852263884619275380406176106332396259985092022375849195419487222309715920619610079999945342640439336270015742866627679540468591138296485744376973312305400689013753516711570080257921883065454549199799871106800417558038906700721545628505249110409140503626452754770794667738262403895382241334615663748850277966281328250196092973274005948800005615224743512443231430302328534317571598658694071526495389581444126518504212757671400228457046599088513556083922961006069496424171022744705135508514038543235405463447386226732722396060205346332839654062671885007524448961164760061889276536771225787064406550886689576385917351681614498783374603073947516588507202209791801515524517994355249733768972701725416642351396172489622362495382242674764526475701385602936423635006654458871227393388072654282866183538992871863869715604556121011034659802462506898224576130924093364143027626162850568034914287178300921708968861855503216285861422301822362225332764011075662461017912630284025794886060713204818481856970296169882342331322050580102019272776469209261679786570858224605495260061998212233109239715894444999127216203780452627084783144396259955041998761642345035889832257212679895902376220038347023517408118614402651269677019907908134109032701437557683080120865310327319765395305539750809930861982267203588060373392725964156309613242114047804628290203966910684458997045207686585055261633695297207853709260960992609154629288978447128403878603458861352240160524550693305085478586579870325120609867104484693025249547321207365371199593836971172428573416114649299157021915100699316209070702318605108600984140854735662830633154323074956541909186889055163282783532406051095145271032094904099652942020853626117470473091389579902629415693202569933698747866093417282415835712498358821102732984070092356253632589054391038644210612515433565278766154876968404366001417563456686829369338448087857150817128644999874276764225132630469874838278925031324031371072261176832014659789083081930776448112645054572965482989995476969674238170037307011195435317644025585622763390601261574116846465235337788102338196909228086728494223198737455497196054339718091499446713382990091921972886526707596845380748226922460024292186835656673332745471689386918685728875619711554064467696151514930919072540273848315795052304810888238834026739734900224247023409422828976007455516143860692171810166849816934892132781665395044848832469069125913980086308273577170864468784566199519047140216887469089758819793544920041237625156603452196891926529120131639776558637880253847348845920561808352014885520880548605052818382254762166995651426465353243859183895670160175599293628045726858100582996082743888234305698979861837563435781113459157002977876441894543087535860879676029283630125505315936299046923421902360151238821049184726089625719160317302482901672500977424162001216531689735534709957005598242506069346103154774649379455267615670155461451815850093966894052973696542576927078170580877788393545264321431174081614348343125264399290991606461934181329861138662552484261064549343791909242479804252860800974994383847431139171098186131314293910082582626716194253948420583241419237361135557043823031615927612500440557246475368551039780109660419960572494691878701019050339924360397794647941942891615219732335136140512260157724525040790168218032234963247030225285457154573291152201500142390696334345498281672243202551567608218595088711937469948147502345210859012107298899118538189860815384140546354954910708561002723334180727408800171547706790070737844787037635705229370288007169407316119658724028802658952492738522572089978563660321980388458354938544003558769329720330276812571540935906288054894387224812641577655623142184052001789673812283541154610545069862847027243672656029844720947223170118102989847265183741114940443229605929962326999160357977831423647547047664739295497815918455956736247411449618548482584785419970067189438771090310280536175997953759714378207572822187997998504020180960568178110091629032714238647104663669492919645446889167659499351122573936082338413707512267096790591877374677231762900845983447842836518328214763378614001664134964649000259822259276660810533287427191874875338080553012859186303915751203396869984518347715793319384947364289596326736845334644733497755073866355550169813892942656341255806936715901996004687458979236549673002523370962970431498457312712353245091110987740943939252259506085435761677845580407976439156611922066999729756269141836980550045239980645706917335175148868503371174140914468312074874245070214500216321701641360524861992467953655674035180148664142448961655904406240854080652902148172387945065535361657617617550779529211390604133366701892585192545783647819261634281689648953004138591259821327511564850231788489170030230800227577985770167506162279206052440446460551660163467635905063983085896533146447280523254130817535281597108986007281538572285379434969977675353707123222072981084257619995192672510154232736950547723724588931363238945561838790711428820427713900879127963994241262616113939414558019505527635581876569231959795086792533550131663215103806054896837513816471454147788449627447399024850420055089294722797009237714085100209351144337292501381426326863092473895825194223489893305505959206640303262284075438634960973725281663001042632267410591416277750442495675191615612024715813791765763200718902708998338703596856287453291122999176632110174686559165283712762929281575950801998952983417847649916047672920272975513753737144372619946148533677876760877899597252838979274260067479627767565007448695864027975548122875626745445228933894775853958238009401161689065153926033306514882453800111925794055137157251324835456348705814223989942687378933855918379072838295935361791831452229913714428346163436128157505235489489438553947892508132050898441921823799241160001948197444882913008083837827449971064272323092707316518132763616811038458295434526206214560628060431598654129285632061881678541139391558649886663306095886799541217804347432211454812765123171168143261291238141292464471311129013736895839546763287447189286643090525678276366184355456653463291998759198846774202922184720220580104971987021887681122361264754348775874373338166772541758843078844985297314031480547533289468056555943380828934497278578948933982589625003098573761768144410937016496393489198881027172183988184546563839925589058073246303777332856412629749463163221745253777668473352643981567511188235786707695509238800742589032729670213491975805951068331837954600598589031163387310594648569946195101359508573811864121945430572154396963874824939608426501879537338480597518811588099250788549268247337430194734398563344724104943636531222461049147863769277098279830122021384230919350929607909263430778546429768343500085310676721647506741652349225056968333274925511515930259611873881031991430225260235061623529386812599238019618867012319332639009289256700944633996152225128180042672895200784633183957997573086793647582882257500357176171422686443487853373130859126105346699520985793698514796232854464185899394535789264710564143377687482831293957381234986222762556093095961879131516324866161729299120517950323141689828320263135917786580406479846817729302488984854389337045582713261355672162279513894150653186343688628064559334240083076397345727944622889852806209758025955938321143994847071082564300322591154936336923755899682248477344540161326815620999559271360322785385296500753321947442395177449691080828497306828096384055724507819685225819114463460246983901664964394149384726318096182277318351823732041726465484537020936821913219289601663191966197718602610926731462856223719818931477176284737189545567781595878381935399131487539964345400571018866248724152487141760554006539546194190248274129465694910371433271702102841368528264925813364957143649281211330688406908052629293277243694968119761193069965904086393774628375663989058030906203053232830467098142519504986445016776122009911093790592939021300531904419948325591915874170482581343783861895504866043727930896138890232518737918610778211287251913103048791950764256137845734584332482665675558759812240679737689054241893362836044248811455023121016699237715215204392664720576469168115787674163333801050856506204498144662235287579722409195437415612411016207267800543565204697900159577601286441060689255595127336283114492607604949671132032132589001576340396633903438845356604387900317926556500065676731890742888093520685852803547352261825629229319994856808367375421345234596385195198294723536481973005702320463923787930036616014505605918420151803021624336496570109475014749772046624804893586916519877747973568282419566262714921966401036942886450319811685967415221885468853224209818476144977313442487971094089081894205422686033113334336058825045334464594039783435933176936061974967343333717601034195197128494800071754323455277164283042312651090841251494232915739369595032120207532989610314979183140038083990441979440587391335283576057102406707383826315813224488713964030223592098487741905429035288887972335209787718103454683726720013449241512959031436496564326877962632595118795412663045599140730514076025247972368344173315547839789690073231108295192683205170995389284916264085784876526307188399013954184686342470302156533907000178349566463656394982971242710153124244002902876075496833030897669579554383308957253672032956544028262760110941889149824143561382804211253879109023448708357430495748689182990302601703244048507255820613279489505962523448010827604234007765177481340150783203924012879590409999763259475146587420092877521492564574633947741254239140232855645485443474339171319519311946112493630206461222871687457944053337552783312415374728908194919718808550571065877810106419044819007785566205113580739032648725500396712100468224188264662598270853422968605092243147819181906294269870744077407565612793380020600176089349073375980551471524827783676200463867660846916257434132261543018849028203336695373946028456593190577486823860865703368307937256352286713675170432402077308606057259370642825215205325540562192853490407031409153523654980193804646304077208751126385484277610687127366202539260773626318568645590834427263170734657070607677762457513102819191122219305798701331012012322946364704774989981892646206029047568662057126354857399014839724408068800247074658368236769704365272807617848414745759717933394810760508237849492628815666253364608671487318665718033287827773419442258139382480565760959549716082355966851594647967220253091988426713880278715340013590840010806096602890060055681268343229804787460810345237077166384370314612778808838491002622021952045366826597020933588192520297130305023977575792076818683414802810297304224615054834405382856880790223985664925924249964246364025993478207963774980264457624634879966747634008429858309147530641572804441467130083327139165579825274239613174617680677872110546815905887450345669134377347043424159165636241999479417912721267827894173989938016706576730272365655329442942456510731069417541185927761409318126889631799399619215415414226151749279552977895846134787057931316087320185888151116207874925195961867026129672420262993073041797293199821577075040287990263627566506509223227412123506753545723909586096605916098361324311202064854137426473018199007620308254433785050339707918362917117545555041923591586938807285953878022627212936104522834098767420723353793335132119590251469503780530573948078025749698458078033448998507153843585378348775787082406672728274978604902040294171744031680887679344873599621969482304809791170963580366849998316013890731934500668960261466729509426484011725000619487249605008467890051754012258070837260568241164344198397232283528003989693176351861884313569211323001247951286917147853648140281725248657805751246276753705196592246481837310254942803736366339897515791558807203207118039674847323715009858037863133391531513631730434745806656040277105787626202546208556224792782478974121633981259861982463729470158742110098455413258359958529679877984271601581623950360230921270914627428499324631210881202709563617866122895948338641610256069211523871324561866518662799025702729340463694734800810606076520225831954061216088020344641367097161846839454440630081729271840653007934819162455996891848237607273422997925509755282350132301358688067079228535106633414912195743273156839528985406537875487604979836042108324715546122434436886345222013965325598358381997772384000193004545895796900466393950414508042477143150005996506234568263160508181447704174918698088460346685057711858249432905526018399447397190001241902428842195445406121169365175858420608630412387024609190968104467447832365504725838909719690445428771673903443333832089307116418249084818891105153249746515834790656775615545877029970853623545465220858410646425648990992716091286706357560269099184090668504707919184975345319332758027169064858499037394033750667885251601963754387582717132283887237342117871250881292309771331371814692571423791638559774532265815864455168770278055951315034878113120349555722156079261065056273362273043504489761621664935453604742938955171762216828332941234341135892576429032142963380498529898065089760112050180255521322926527729594404508606487058220788868112449549451772043426653481897261104043486407344731098986099295848455668052225787028627186429199520805794261803757750782236973743236635349658703730640941678494941338187047740917514754299684418294958138351127579886145700208426868242025977297436673109177781807925706365719808205766671961874596431294936563727074207451469687102636157194740466007484231556284484655564907568804941706186405049585483247015960746983428930705907195074069237468880291870778664539786874631450896409875290263668616475072496736979574286009440204768013895467977340924424308966487489081723710759323804806766025585159697686027236641508717585760775991730222403613799733992593167854218656839048274165031569030374487564884515982149280358465071294201894364137872685115376606730634169584578928825676871343856714934033725954795816633343028786178546828793817246343821166370590465371448440243555886071186884253147007731816378144113891424008314438020636766686780379893273470388244583179472835299200583545538201519902829184105248954940160783246436101756159211896850432847718524701070381951354558114002282030935353253340658973262049905344448941396754249997653324647070633974004082054490229123869071672015147465275103771304193241681273926161655146405965956740399355120046593564586994990682596302633250176020691923835790020958809329724886175918972099289042726653616805605338339305150070259712687733378892218988487642927621684836540768277911759126205530182025059495802596823114879800164909606394866811608760123450610725687118070556862320119584322293702592359167216183799581651917763051101961065131559545525208321447311290153137144794881747183383168493635424535906797110979115350112014143512338955381781455664590172432392915876085710881769857106470289753020304913529682898723456080988311272589540882562816882851613805950317517203407912959921115434404060043382350964308798085491989416946703054699693026551900314551680761984621445545572119449295416714069899255861552557363779949588757881273159290127368770912058812655453329604442399877734675824700294085671531063703459978868982800963024495057169907377118989652684852719153587012468781600864092631813566305174129952084656988563342018762064647560405583465058624557690380566078804282339199717037510542094770149851847000692934311556898573333333566377798995830357352886022965816976776645927292992473469530083035604760534303399351455422746168743758480954063534923523731281379747690652574547000275454140007611310849627731133705367911322479052039549693108070570397193991135933213590104023892122970787794923363033602124575703711361098094133748304777235886783945066822916390372382360548481572003402292685348579347668965276560154517012448691249899514556962979272349071211522653834193559559731379202942207466814435863000449235206139515618090606611104298298193136010797873868364382541256534960430060364475290532246160040215035347366746373391877443535793032113714601259169165196036651015036510825831232583915015130766218190328202182786627345272302309780241167221105474490150148891460436125709926416104165552628692076626543969233913747371060818066561351526893853622210872357335941982781550723776640892969387756038012996003536092702292535971147273646974676897705309162847071837772634209651376785629860503463882523737176087122678554616054849233841756367905243340379025221337145318356409073578854532531956701733204718292278516692005522266768528385547645090437224020909252096234234731262580180153937149079600040170858676675775160403777996162441171369164269282915964248302922989927158429667476755140522470273867521145667584051661682987899601289842290006204269220683798419474149651321663098691946424743961556116130302458872839059261171869497936369667234186401651341649656713487508115307945081075950936065180441076497749707144631931917451167580148532739704407333515967782741691307600361124929464025240228247521580164187209723390355063972442972583954731140253340657750789937129925512162833738768777518136916694949126790522436020125916505083986024528049438903058438941001179404641666182675745584425689594946091418126930045536576544890825070682039071594835270266505039945517873856022980571010062550989321089059227249267979880453022499654980104566782852962700099437532792646155123132007848250338500637496408367223229306841005912711306819366957455555915349383008388085002071244221802989294127068356823814400265822482034763964744277855160788166441752329151497433543977439294551222085659176661288891517558790336436222875562316739882892822107621128943996712927230801290121196387506837964724706091272662883361701407247461492492978146039460346158629398058702920765827625044029153513597754404529700387149191261759376105360085860426453045646089570139256611575622083327902475489003344300367126144629473960794440508816246400009951189640188047757282050792208070488894575734590243609733409108358489238057323171868014166165695596885547619257910952764927469280797537082195305462755122132581426624614840385903824322047933807144311734381062570631728519259675608494508230898192391715663788696846272323726858933326419856503526870609593744250924215971283103154672627625453907863641638811858683962400328207343674539723761765595625609238763505454777136596765919550004367634582834572505878649462003311675309995469501691029129807443538077585957830693534930133814360977801226367932955343905292698418908696710117047452461025887595187792492764459723094155834644607445253777554040708257057988994414338086034841878349821072671442067877556239196902650502191058412839554289533204113088406424051614254572922640413916214884675968940051021014600227370511497087937660823247113685736364561472922379475190429371966638635499720328738107655431198694016549564216248572466785491759024854182200498705571791063039304000101510178326001796220409275191085771755667606174300854726114118380450350804056447814400350085700888827737622923924534752387931894472654493257819509740627489860541216631924060628540791180044438749673904497667859441481237016260770018916469121054596148140611235905407257979784072556590906891826617833793133549792991814501696739263129874386015717518897953046256793133065963338415188452241610706758182042565443466052003440354204585256851744102554827810699506261720825755082793607600128728410209112292509695405986592836222138238644904894847850631753841062204242358385425384768728781646016944226326061917712054540136075012032910311979542930957882131032311768488547348907652783783769728114586144276188893593375097987581120214649033060419664648746708099663028795280453482036305094848406196463597356027061974236216222517780971851082828134056766187521272949771254502096155202287664193585992343086333926661472962546341462842204510267287645880252587366579070270844800124431224299134765666709920289354818259323443064020530679987335402847020847323923040512087015053412053031692774926953829198538202111272560916529800317037257393304881501790574871033961103512584773850196509692835413781854052315191550465249603692586137768018859366068360581141729958504335772430636939617531726731495140001531640260515425276538476944522184761459133107064295004352588654063834362221959445154387451949753103859647526063701795325771377803119162462197662321162457565310913619369927257257434933335769675498645247507960348140548596111116830498966641170950626577763466359433592048341715207834560275425225265539182842275444403930901704697857612224982840890897604377334281622966393132765357834917572289448428857522937624057651242638096306075435812602972870303456641693313209926626713073470761609035832168553137895009345528200154483000370955429054913285731286131553809397680153404579048910620451052412064326809206324966544327775733332099412030224516917379033286695298140130661852089472282838274496387983945914569690185962756495679519147731061588541797043905184562720962691172555510689134298818039916273822529172741405698229379764006170398580116786234899548870809975727338243916322185997209167281547720343327043558313808168273894012139504270480083961004426201966507761853537567577803238467697607492601389350792242878590121661816663442065387283485532317626259769037992436171941437841158591343904608408930323948124807135899957182226792311206054207981376695809754154541784822761946699216239403260171801727897751345924554541554374717689234488296675585439838538458457978902258524472621036729461339160978255167333507185461618802216102785740394478860986380183433091754451736142723667358814277912750491212149032932183979271558401648202420969104914292516405525986312586479940394562528520037401695554451459119221426540611485287779018215337306105611727048137643823921539602608111594382141757288802365725275615823694146808623828079522902212800299089239938409614327271948029701381047779728444472783060563957355535083359170284545130689491146334340855255357662090233209249335792760002920727117195567687981343113628831869646434435799898194738471549560330897663899045561507487024166565453132191594526818295734653808134183708168309640405046174821790095155034383986127214399616564932018299853877405484407183043627429504176421454845385944607767409717162779566478183119931164439626536269266965773666946274492061531858013109920588184005501494096049888132383023742978836450947461395046050842611742873693863025642768198638149554197288656284271365749409963473620284285007549438933318529343075404118128568419797936936238536840164852623156488696319684021348015454857855578344316027732750620322752472069343693798301368123479355439401098612069800409626514645785155666584313794687717474833570894769300131245756486422376903439218379229210386049010458127156012421861541727225252541519734503819168428267679999359008006983283685567867419067396488192150916918749613399091900032449603944468031447314487886381630086784868399644929743139908135494566316747875758693734386696651539485609725284519789051966620582692171057219428886372936167654582730925658163935259328718471279752648522895585369741619101654250896074230112017394842364596037749241805174621253951390532967647918126507100919931608233474965064420676259061189999706413170033270204626036674155329255506025643286605268622737151353207389315395778571297485512398114002996283841980950300639601106159424855159186577502346445371138959555414756918594061255831848098772738655060142557835448197650283650989775471874943418967568796415396188220791502640687849737855943046556975940570358629709740515578555533667756655431940298638957235756196144961472982515695687159387709826445071120006795369886695097740499074263718061748587574340640979208679954769535485297007393393637496090575762926879371532588199043661590384783352219583349365535021260250484545307423888937297789021938244445972809162671757772885495336205808543916042607007215165047853039290715046186048956955960095207393997381639974634217990940636360038806199002507724718254455520756176643762967557421708190030853622912803404484443300792125995786055029066593180032218131208066709172018536964121321998342805282586971395886704350118208048173647267548405527370188429868833828404131698357162016810390050068802039246423032163774697271272847733567701527836351789875665081009216678035580497920964408650261760560784965924468128292820700063828960946058020267904607798712936841714625290466424274264049196085931740316985898340354843462799148058590700169420138571114014613748725382000256287324804962561652577216892808593045467986024298271159726315566207348160829689067875748674497133943657034512216061886512973882646480798188866946074161441288401455849231834326414008690165838913555885346851193543059690994519965171738292456402165555756300055323717578640684078014538249423175164552187855129083697383066688982196563969407644922122139120594792761151457528940085256419474034616132286760771727757565226498497777241534258136097140697999121328400669873445623215805184794001089383901941239057507049917933983559551909097991589918811595957605928396986720953631343461645389452047521711692464229821255800616432183335890516853423889917231466897168589174842850497025519633115157669607549158247099964334367513396336877325460763800519217949807752960595179644898605588807720840972034200555488819656811669846220147978444472502329041159796140343497183755603507669609991504163034065892308278373960907297732858816678738350485074793874315398778696014235920302676342817353772461888046091357785713057441661490523569037526852087940298966147033324965796236219310895712228522378600856145441156385997258201349145274278008596459260227498527592007018178003551458409270614985496113071142977710664459766181884273514291305789932314709927515984684252109530498628877827423714153785690598981911955903882462169870821221631565526201661009707730168846931509798519587171464144520054513507522626581995863289128527461038369950879943654264934791261304053744154541368446344102803769855105806827047141316832904143807029783382300280279653521644421364966207426255736251384143708328604769599461891343320879796340561201607618352812379994516207463338353745817338031090858917491988198195919120092727726787447805173518826858631731979819667586119883491369477890501430773867206226717529558801479727511096486163976003515939951673298790362982487463898355972458416223574906116658909847555134248185922092932188114601890956842412550386003591909018126007716718860784744005738667524626840884544568502024480069638771198929174153375930364276322440849305993127376130543327349307861212632741135062360356728767442265934823828182465768914271535132644999505507685960249873872867465727276842534910549903521856109655545841060053219668139207897575099611428607677548377401656790064229552019798597748731860252373289369065905132667925196097688219425248234212911610236284883274787067003577108422372119420501505191151415924359062759561285439363991753682132118172678533180468178856803167495278991684912265569574213420627897385027039953611485607394570360963856046715200509461685713353251036605290395626586809928164170712478468993798054126109421023938539831164141521496972997318888341169176420389436072490633420108498821609287221969119314066202632549949057612495836647123665401523801112234796293926148791829845669586745832274739276525207887121073672145860541095049329622740292980952333684775188960803058450987578026430230581281383055469561600870088224335396452480311096375515579437262423485771418905248900271190328413912954066118610130148689281770265256130078891577297414866564687471487639224562950152203896130042996083033147571798377822883071926374811236776570754708377197720982014816314205122787162982093632695739167368385736733748767995625327506240330638970927722938944403848721438518127214478752788419860042610505995575435187884482649992867698981552048291371646172722919316191264680748497388236737863585895195570455978436941857876853630649281364042261232332740543331413563804985950690614807695254088225464222776396700165522360278304781484599012520400027732907635526210543769270124279759368072497115592176445246153293153330546502289887300173476730064653032661722736905550712407636817137633430681527720961103885534537407772602402421705769104411606098200015701489554726331668239963181705082531503201990286528092510846168931545581402853410336182203430966023813660831298345467899103891834219538264068886719091369153298756881542652567840834362775052467864727392036737147641371541281576903055909472936862040517217532316794614350578518552565778315441947514507211709269491694034374947674720466167540439726518229061125497063620561887984021439170447731473227252915958440905145461078719502836509173438944204173621625724796261313033501708387908032814368997020617813365484672185772411153126600069839161382190580568540726220126157841467294659069276244498973673951794251714589067241978847203817774264328551771955108447066705737424564696732021037155174748216941515107587974142175894403247795825026168425456449352484225587133348879449104578287897809347930603502108678975542222712186147557463047346881984060716964691994049780993485785062668475212453079853837589750390513070788802765359538899713875396353736073605482034879101374099322763655999968920311709261433896832422323389134662550307745388760346816165340392499789774287333688830117185623738303915096930811579050155648106328800190278961606161755202284454962113311408809259989821155238244866931619060135219373185440638093478905893281118000315949759809669329247153365871974122817739021233006381526377857078222127761001901412100958003566695340839062531473115803756945081077266435906319215275392543505729433331274501871355666028644989379686686900438065663064700147922855360516406937198768334074610231087854328104299077938926309877004818666158611741895116017245731168488692294853912257251167739327756469980477281127595265201377910821401501535819886238334848365546717261548307882527746637787751132163468391379596151177808191911909253992616590046077040064960767077517576905977763339831039744550453764235025231012988385262162085871437483753799713278462913837538822029662508602404767887254540659034974168094434642380011540316676450052781044541839840085454142117515498637741291882899523913030415018439025492809819099662483538511959953873392056866749529816778512893370527535395200675716317248192114528734370440510475253227146935550030707292361279807137998558869452428379253527180064013636842616205071473382226643679273349397135688266898361408880467525202097274038797288015748491155609177933710390993302080472633613406351025047412890834136292950286213170414174159855213636273052853291134062347527898513555129897363046840265856787280825627063659807630769092197896098079791350552566692175256608445671542832722930878727262710077728914983419692009822375991484930044452111699240077531049229898062238771695992613113397708967187607984225040240346450433031135645951232301428780192754575663456395986191897813111110693488891173220240277822781679524887970777683565913906139553098298599042047220178827210036370451855254444834902399415015954017819603126789709308206627078235040386482565731830744375831939206684122889414805325104052617015563547982154113182259112177495821469012496564214421058533908581629207115257027548473589618881865907567964821288771452422379100528578065478465596997972023189176012306091403828966864910299416038203882980234751712063131938381582855705912961906824837806097326598764271819489530751571302850248563376509687916721827939068364616401811712725214744220770064757910641309580556896157379043190893834488421336473335348377383016738091725749591347696533798627422671161622348284712005255697053662412528331313154933774404901751154286339651536616336500885569622761619872445995510209698896344556395209752089772611185237759452654837310599012753479016448855974611186304175812529006401238554987243660786226731122699025310513192163892050124025181736186514957149865703480604821916740127025347157481874205855069974514237909891046614184316575593125558593829832303187926334623152000190024690787586737797306065595404162801487321921506113232142827586631421120403745805991990130556650059866212060151576936493255727921942192936001105592455297808088309661221977366673537554535754705474383037930466300012738686291729832424633120134144446017381143570690512504694884724093387785364195313593830252285138690223026450858082271439333115527084958637250887414099660821164118728606890185364983963939941135064536152175355575129191717751741562645664531585380934675229218694794756963690374466701751179373723406846511848361771279483652538465773425759427955257198028933039619098934193317664316747136514459325283959543642055705191916320514730506018551015778996352523061707311345583629581217350744067023242223556677505877737520654897836286823340173794095730943016413270663904360706056508635973836490011084559932013401931694495448785325144829689911118056276050520986458410459926492110480828558236230380710736468212614372379531202396447160162750987316059968638472358048542307421746018688779278690132830678991982189736250272655324360643028052405790156880734378512071292028483633606967159078444644772566024002133327088187722234245215275308269599245554155950500902376430228563923852326954030281560652933507692177544971814606806776197189269111944608386618392717484452909270272142682550881579933042656335464903834198810106772839389834202472133624569865896271440641345077160259528864975086377352373880092613368433480392247285123633869977232336412724661201228073229259006551538446858634983002721959122821880870336566222638040183724157173384646274977526249836698137842591682276655740212018458693934282871438462821660835116294587344654953425200568032110293805336646950995869329932612855059663242780359970046959738984419727122562754480972293954771950679972017467780071568121678458868629477267591267934714255240158472273525857110703769847720478358571084316589318821800859354793657206190591458579797871996300817990382440998690648008038366716015284638889619193066263756309890972085631737228906029701866611557151196357238205513200268378424498406885280412425574639396836952922507569777394604533438719825210420167441593723526198064421843420355280283913218379611925045694824958321031902953970979676933034997396788244690783785980057738466311419853331510702271957813696740189451940703701148574784680864817157250142638506691599280678091631962258751231001229024021702802218972714274857841172247199739824001528478186935634372714057249933700500460830233535798104756773731189320206973021157793897642599104820021256714469256721035518042569486865587542371109060531862323872936339507986701935137442279085436105550947338733473117406147890717034213266242788503298968916088882925066278727343060812778285622752607998564995949530978716898234089582046048512804178070642614329618698161072980896109638234496666407970148193226710895512365706636635411826124310033539154805049699738367745347681508636750864176873066598664729278398771062787500917857532593478644704228683216347655109880282668368749227712833555363250255487087532423490829014058554932153055719470127909446927179555616018272986752279218926357986167535136619787571705884982867381484668535221810292749176795511571786241747511051351657308385551077063117641697453175903802138275731934253142325873204599903138158587303637345633229630960721349146928745297981628242874983607397607305935795099640888458463615380016798496571971170671331063846519700186258975283543551883642811958984646516497001276937908181626216734357849866595786467314514101275650952293597628575100446446169258934730280547370027659842717962816322985603567975088213876507037962015084108020090696126368297227240120766553809103170350044298429937705176112811674674126535241893969498718675810159225207308465897068521066812297345511503822411276401013399108823472294625917762597059728253769963607275175918779790651136429706075254103745459390218278304700424760968793609858855734638806322708318597094639848982176106328257705771409698202966630051300449902500072204368656872176880738562677217865202089399275907161100111378338366808012789268792655595002124056840286993314358911166886109114243519432839308969184706709019183759702299022667369310096764427271094726964152108839935329937628591399826408473993880663267746856121413071608110821277483591737985663491007489830153042605537908476345058835619485220738312633138947295037460831856691792646207593827619498868182896529043668155664908846048598656954382761654477398572695824144218456459312127061814524546979215929999263713902784852811898095182532600875742860119534276376397414409646646700884964262829765336993193449129775611766357336089752570248901481098766607918119053268466704810504217892354183998828850916705395055679745719675493417672692725852674196438791052098686003791502471000667622199428541598244300617647600211270670172091015376622711705384078381373004763482969253771048299345085143030352339193122267377063211767510880331492760692042181333335562678838191339375995876014289684643977485965543708140580844057886094899734776487612092085147194793841021774442519874538743340857434675877369287378289641511661242753006133912798194805613990218301479972930063489230630315404676598580221507328894227128660579901389323552059918981057197676256015006189051327700080494920224775330929119514031878550714429287088306645687568597568553541402681816206182927077747322606277219526864554465082658327762889490013681798767107599417678397857971923450705834210171106826554754165856982078302943006847462535660122419640011306063514182563267178431352872350909233043808351490655214934775327706676319594227899863472756579759119801159785605943463121549266026522248240748158426420182182626426931838493249744427370981647702389954343246143466790159481744180807891053153025359982709044283129343454178880154405449186199315148154294523113262391064263095998637638813490080996033660750896504272319672047773229663157245364023315098789270059932290021982938269664897245350322508736579153690408284778562016633302232253776047697791434657520850232529093482427663447645559225519038064279971812611934461491842394315442422277102200013171465660672915649381252056734677496503464556233782842394594566690529408511719333219379057687153126544387419576463233369916641761143457613928444406666637651301105705506486107139737490669639567886552055155589995006481397294473836788781387631779630211705796181463277746916567964469466994544650908186556980859097672069309813251204978904365949361819063733138823824406412105975063959443255704001907345728210448035656805396604383184586071289677126526192677482113811995297251345347236808847298420446323327642053459752857097630568250357799684056816698518944886152492549435745431886732506848867726363270004619581993381476685125932106354843241317111868537138218516629613419521444344878897652251294223311022504438622354256979784959994182246934010038366020666680136656351821765140341715822124436282639605091706775104323806961319183124923907411129528890815425973876090296132729191747430456430323867493155477410981264687873040216086365898840930342512281078965152444200247225729899118531915217545788033062263402194518259046415468676181520942331712206741536784198052176898642386738075564153681327507734751351277394880780759864259959900847108503124592072965282326736180362493354157736888153576848662686224261237716161494893763113081359875831746639544866201429416249165059707191889967392711533039632658772773705222180712510740520647230177146420988288431501057280250225947373050652050488586913525750857640781945055617112132033578673048432418818747669042408483478685601800276562228759544678515312006030816982375425062882177160932928214313203124849481250839751700290388578384702758562042104346149536266049518287351837557873496160610897938740853159800668657685469833714380520374703973270587752668709530678754746268495342192342459119318559005919679542584638302418852348780686377101036816243146687013301983663329262980940588749818542149132476910125294289571453011304414789250265106963157118484807945009819629799193205508205540086051716490366824343891989694892364118848007933420040362495153908716093282192700994357221096018036814848540443402705593108064526203486560390304197594640059927521125100962757726581446256928024806257091713959990284942779298035105863879511313710929384175637942304041676132168278248900138800148184358651134207307448656913467360687509263126037521769322268055979268387917759656769130754841190847525470338946580828304510269223297248505469067366252878296010235847107486166300693269642966142014860897762610060814864420866052516184977938790642772069078218451598873997919338864048877650003101481167583349657827035785706095831800567968754429976479274963353698657601879707183149775853236627406557058659628080418918761601527137666192291332599978050672696411331261163656899867832567513665530139262525363109493193590196202264863578512441179708440115071177795735721439961812675398683102482729271350681075245413744148852634036088540292805144167077966514124053063323890958507501556218542784283643739274132655229980037887595873028966436039563223141422220128779093541927049301115963000976515943136179381478271821818593358581762336178638532526697419571495637941435556738910173594037842627249332981492866363860003517313801179050853099753682668389278841920399932185802386942975792573412505661956177058663838242163436778150226693013929170048709476315669813115115516513301793947240267034080713918417812401508241512275095686615903396821013812385934118621230279607285296175633721473868127002053961272583025885417628889146994797488074659649863745508463862984975281075720416262944951016777511915317103997112861892382285781890134771601296985601119716965501107003040291431306014936963024603219979471147365922035091839883254581259747097562818620615367255533622119367054883863324839436840219602758377464502204207648074543316978697308593470647742965003348290724808195187040448806878246814677374412609688947546713839787535206598212289967473731336645330716619033482798451152398249176374090748996582635830451866351669832431175727246312583930438235983983215345162386463532795813167395450990127846686619723306783122086773678182081166967195122058033901643809020633279909267693518072950193517174659946158256451334369071877945505479731365412772929947359712541581719357513243878912148599445005841127476369970922924516382289163579873628118509079259410276869810383055992658087446140528296044376561577588985488684117010638482033641819161732685541955661157509007898760442279141125433861515103960185852771598897760117980933502905308535125363749423551838300629019075407075575248151659676929084395441831346442906963929823532375236122002329341672039807453134240181192701824473803255604347481449764259891123628430345057063970799691396132309921654606178856826628063079220007242819664661366498586517709853354398616037403470383100561746699766011830243329105259702717801908445659667568192212398183443448362238310506915186498307227905630571475335198202635092461939351362455059692224653952807157058806254673373846160854032938847459107858559961289494832451782312051885711494339295964712569228015828696348741186889200372824489274654218360264774748110070845470833032799129105391673478934557990590691072687469572324929270303009389737853606643211648824631042060731626756758179770258196213474038896908496799539708723849530047535890338165385811906344111363794014781337205627410289641001532996409957335950228927883260048602474627905539469413854840653261202845853080329742768643103503355718127665978625985474588230480391040163044021354905199885558095558684318633928291881497159019289914692750647101871464230735672325565143457764198507052576907901764350017136140143740298706315063535356889548042039074537350373998370251198828170145289390599400862141540533457680453330556801570876754200337037765176425969545652060831502434328050835132897499569070780053569006115723229939987114881235555956866234189624076834665849507722460833552186512926756760790020880577634415349832447744061088361314512789824607521527534801860455848274054860895732663927801889878839961128174038581213379689933987559298370614255901677585768320706690095156803236759239537578512105371961756023170322942630101688945756939168742911841274384773592049412406708345089975864966026972313947207460804737439057580639327506635645123351767351438811371318345157451536336549357744233357700345010449869374220104164674059726362168302172953778755561506079246849709523981627359859521658397028825991932475003345292969026501986668641796984478457053318276547519729143393062885103653608422480163779193501971310796239441031806592259193900757343472254762930526603957673996950488917179707723052610219915183932844521207043578777333219279129630471903553222120944463870950550357050462338891636665484979773957258747924954464404431289672031576088036474036826085212994553259966140845848107503692947116281237390905631873445419545354632466894274052444423444190206195755475949667672457490528509157898528314284339723280326120842468891483666798394342655265459618835248309172758025028686700805260507352153755910699199662251425642839517966364533530245048448325649140173549510670923332825141251351738476358011296477565195400856116412956421492962172662576689876406488371615464681719212952998446890976549275330401716208839165411854714599587807187775909641606840996134375302009968467345726313978723463480445072662241387562573059384202205018038008184893275932049022256699491610563912659092607229262757653486544706828357337435593194214977710055357322770924626227461016072419730528109150546272432391560975818478907151635222936013006934836607822792517432265235031278570916672989728894587828797010933029152434229213072952626920421297493403303875932361363315224568785709575170352743561522350584423513317794774587634250010380408319644911325298305949476604649361616764288252977261138667873355338168544509644777198830526478556447536390442828296168530801631861925355239079484624112915160352725702616936311743977332989830332360657008831772041542432421032953260806048744661599453477816578373734389202652472200045234168072184747067217897284574752036512983981959073145861254480075292249781026892868187721334236829791069798349230298422696344928707952412092408995478404673658661018410790925127530476194408787685674370707244836886437214519465691190341485296374449911982505322324091866089651486196267251258961145563393912573536562667845285036211848250827989638844281584492519881607430266748255990105776221677360033125380587940422128003722524551485623540006603319766797837509652280765843805641970603376486102877795060824313719015322296463532666669266875770069230075046850881943519725188564149012372699881891749045571005314496751933334547286654856781014599061883969843283505202100620882252053540143790744861253337122652978238033854601182980320794970223045427056109534132808213168918904044010052212520562317579061494152336011740178698788231651121493707083551902033815360950441929974955804374860917420175464148356863892264175273148392058303484919589239862422556688448757907961845429349298920969040038015360326448985078941067357365579331218860148065688795643057746377966037977070666099091447147439054251975705038441260446753857205063660118869040252632883582113999191070371798955889813204337776120109610096350290699175508759126421286414083425328595347476324096940477975786800269028592569735670300809015482561118011478453589306143554126175730404484205619602709326311432325972763814355088314347722276851546683013557656082730991951022546458021664841674336359015098805761971389496372235591238506915023795144089791935740120601357531218801861007294364983910067111216538574692021975266969904114828156781196138451844175864087603251928635783098989731644868442352826551157158430502119432390283010196530099990621213411117489247859506464204217060652044503181333871543217538816265899268476637179048528932021749940806462368883254136108399381313363941953495012550676787883802950682537448849065086784440073385652621038242355370613817230726420707948563463542695303620460657976867095812523162917603838226847048925937751313343900826516645078717815439708491676163159909613942306833407627069877225960712005781082702047821013715984940024390759730581539473805408153135154832353502062693794141573201211345997010702530576609114378903076716357350698581031397708014675330026515004984263660634550834734747984849213640314107551486972474174549576068416717906253390493281218442126484497680025247533418393469754061656820053339633797547798207181208887731269668663097266295413377777692422006504082425021254420165761613818113569093201071743657606446108910970636699503103771449426236738136409842863099045864152794693171869703054671109326916783482055523159249244634607684582510219300786018092231641980921268559190773358358034399178188274521655628499620632983073001841908658989313564622572307435912223362845430863296474396391133436978823025098313529352712842495592544755692027748251320331490758825143942996550519401363053750027305013840521723430778609839580139543102761900060410374998496282545294009273438896085954981048639940621839520043718268706698985708518714555961762935404523306702627600576609027265299676319103994387231079623168251334327115347748087945461099729203100117902443893614455790089103001905753641110267848916073070416214314841104845411733323762857166180247693161316758038875844765328195526764820972361304759404638361050350692703578781172382829368563736141787949058788784582529011366402664850924406830977872279095215813422975858026838245692409862615798849306029927851196294825003743548174440253544564787557815595591042189107387958567333590343255433225825296915157666626791943962690178671063955524510353686975668828244006225349972172147811902887721682393467729795541733035358854053192346255007133766963254009526706097786052963215356670842097404801310264572001520509368002596568241034851044407409564774053135074759453313777337300485761373668665607879174614863396828087719203997224652932508355612053113206466562102673024509600548778733543754865041942483543397647685174038304985319750267665756659847590252933010106567847299303383917818846358488688518776188476124458195565929027520664309128829045576541386272687443336465713301989379405364254531687655451941187422368396547168673759133436647944718157039495847348450555343569655858158639477908977135530765668213723690782199161979404949626711618892009230629361766612793117957086788213728492675005389092372984111102272705923017235378952240328356508863184500471161314388553556203352263007106571171901231828498261543670596111799701779272996814274793703005888940835643403164240480107496030874947022323978916844009235514874338154600941921454074898995532063490455405784214798610987431843950618552205772829050774156182355527619714119110846777587236471973230373593521914481074852240480644391924361312160506308805965881068138799800219596615383418668164597558147122344407181709518917693573558799518423103455207161174375551319500658971783133174522239002527793688130613957702153988818197123267137434581732813935885496117412927575722626255270483567875278453835926421874810368698625598377974888444682311029006349923191097560882429248485506370317497708393184499406328423906995311340899102319650930985728344981725410275203597549271193739511292881026255531865296139293070192985012559122462835912930690693133768548499077068916741622170932871044071971916069830747541186787154330469712058331586013654984648767665126376069725881720530039836787524697322199099465884116355750984523068352306438592165295573963319628026552063630850342879441037894399617086066780653823400560529742319520031412093623759794672619077084505684296130344511750197575639146769860983913585593152069334282982569722529846738954776659468794344276925703303939594183587210960730113910360651508363809291796931769215047574908947798265639529653590830679367634436813169202496426091913339001424931590052939606468617639417791603481817240266568355815917162158979539299415632671578474590261408676136843082502226708795281563597645370621339541881472259544810437442994020315342455080722546827541744392112774787970793880372673051320978545793066999635733289476382634329114984972803159452463135905129179403191740666596132362008375744558053462122252552390269300976762750080203384062143061335188832730722125040501058038994136027335715566281933611246589823556612414171170907733038600341189017243097806586280326680169392472857142706812980226237384451715820206108210815029303049835769044546499625531465228059757933351788365749389966006972891647745027441506306823979685271106772118676177906667939834224109741493282307760097706644882269757785918355206000104712726880633944075657203014157616939392699692978880726764990157358574418313175746243840497100935844509233704206650478833931072081064132521987969160821587941469194975491332294327545043788912535062466822202900269308848822725317878873091058732889771077244444207750337190577191932327997478719842013415416057948383095081962627693527163837563826068447548817163895601816200018997731906357492070302301264332561814783339448708116084104606847355202693197875824334564328385093214182233659998773874878597614028822268774215985841703456059894459856481530219153951035474508314246856536073276270580116827876553434296339903757970440203612344484514447016652673666083535921215164241583010765666928192972386005194291641560192207557898584123213933047055400657262872710540220531104645659217885427817724801800297327295439348765696480375511614949308658714511185250885894735548050160259026373278244157506842806136229773947468329538165043168523380255624000741170493315501009188755285983471398306361280683558053654797320720525614553151006581064898113969772419955307814260760928495667827050076328828063773406079868782434677292980685174857886980263074771637472288312673722353563539588061519021651028076045165342829024530318129856124002318648935955599534906599429279364627302032175736696474493008751669968464520184326473805290510346096025830049907778305204272349402031059116912166735957602371118082816850268458354584594618917610374968773474849794754244809260480582164666427402197208984044595659132567696030523208405752778784009177480427855686819404761799862102719647944079597244418862039600577273094977612277249570256029823089610644962710277258200932847612526720392812138662666904278029225980285308614360203717795123068771600682512561503558681852690461644523653952022556723971859347507031700069743721172421296461734147455790365784383125054350115978137484434898857559985971838597879480596646715421036283023728996239013628883752468628309796892726293144265819579044418433129627299883355516150197901760235298699080977464233856984596138811463905584986816969604232135030744244940896903838233910361041184091790533539332568260538959427683758894612068848605513210911236445734304364731416507864628767010453627115913121303613073131109479609873751378468655564336630591811268257375958594236463085441676645376689897051968842944503239076238122741717109969305520101583686508427015318602510862318244503472508764000468448293253814149374062542885512116589556793190118985361057970833270663740691146789172432960883060196986524132770098359319053018507519544361125125735127138787842655682259667513328126401959198387914199201335524466144929500068087676768417113662148971194923101853863326970009916925941752425004154833142136225903492307072563824167164408453052657042608668949865794351939828579265941697114002580773319409799659965308922456627773657362707001532389386973828244715551028686480528793787351033041293303651056308300932991156042198076799000862867652048755621768573249319370615907371764121292416241510210741982722601423975553670973293998378660719889708422900700880365290506413373579247641765610044657145076836417593855534951474106278461457960088330663972060464283665487239856775308189368725723325413575692842742753179308396930902867729991978984463385076173973886067640724977129734344590720197787597894776195183608808759974445227121882886024521720469160159307952490704723221110412989966663129387914472451377332588937130188488080213257073886223393136254706771767041245630451879397644430569600743617985715914950376966280080931403169792263099258444781827653105990106783680475481608614874838062164753320253039344084745898841021920745839386320630651801075658600922958325261270558925554583464445571207218393063649898536575630270915289017465209662058801756646579378455695164034015467885145648171758546470572296302225074247952316531791627083598272211930548404160854852400693860330505777451129301810246485418277289009230896046419009921236426595433054581754739471500274967743949625980264380861068918126699175391273613493344541716258054081462495598963539725973316361206897685175730795928193532755372815399775036188359702415030582949836836751817320475493134600806612667767608365095680485134750661063160775880180250466459429484492985087477388305691635414033740667754700423075211000461171512759587266527178915543361643688568516148305690130825971956832246134120988617277659503225242689991736013926732973864043522215883602073449045583911756123636632211630363207124165057024453231154559992583433852311767856211476108268417252955829156157238020359009550572959840486919568452996598678681207768570773434799930997133261924577063188019744621295770955836082051810096467542704216960866043227306154738637608171399599577367923275972365531153746798755160362833164378405329579789776557451257350228616450764635829986174242317433663470455948976138594771262094278841580639583742393438793858305711561128342239548144762906593625128599157417599702736451072525098278823046895110401047361273603719601935250608810090647639577087449863375180009391596514380190280531870727875152925078931529350924676178047677344793199606618526610259657395820964171729194748045035282482400865668441352867076348756692337459580255437400929889955743301123791127838588570225760533137587780928104411951364815249431025469277188706850134673113592746934985011141133080547242264776961039250492401351243270291006610209910000062731410856460067217988900958475622779544852202245119360983850037567989490567014021679505579775548762582849906333980144779549428665235091327374409965988519922038231673878015467452818810185324347943105680008401713434636304666618896598267440564993250008936540830731183871283485610375697277482313626317981687702523110477334359558564730877846443606727611805269750109236080668405328883684329242754654031953911473862715446410005463869754655563962130071807139538421883978584271146685157868030032146101025031748369498496094940020564141328405314025271636023306058184143733399384980518998801717664868450131560842258140884671989550410210314677858397603338314422771013329835933497654853909128726944632316270278731572408009700933328201475739327617918363342812876963089454486611265368362235960145187900756417620259157152291784904258863639291840413393577029001208484130780966215218057196287222740429376495407931316835055821657244591242001450117074603316123426584491938855467790148427798538392322367341625633669859738557643229487297319159258925437701984351856378012508021681480556493765681685472192472793823145487901371523660109052269605703246916363282138057738631335034751921551100960827219485038416174092963881072754378805324969157588407624176612104696309727353978883539208763781922928587965827204823869923017966761514964156626760256909053581226333828863076564663281214824317858466867883057977053953120569690457791744551774083971639144619284457413486108102576990716006565739330186625676314740566982622457696839133570031444037737195304953772555544122522616170538822583324597553265701836405457153113181897811560894126073943757168906993159187237168157287850167617910496766895390635690070223463855789750605979822927976587203791200798375976022845388192085827529946572660806018244084437810406738281051665153340975905044432537055035329428455027474221448008206387674337423534233658155270982233093637353912522227115753151339328038080219361047981599083839005403871874057575741005364906760905858944574104286772594536600481804205154870723616481244716989750822572064457820110783127912032271980456821443136318132082363186127625538280171530146749715536445588002610456283269185415739022418802797516564358445965120213509749759019277727334534766116873231393009378131181222816987151614695970688873853409100059011503562203481374425208651914610239937044939122945239861900859739889521354941897185669976333254577653495589528730132173390361013665612073282410660147720855784166758174269868380788944464746130446240716410503670228284293531860081283999018301869791965339396761980080304371458551116952199874826802579227472464501262194856872457825379930817820707039130933787201170710716184013548270613199458928876618823236617653637382698071841511749617138619479322908444614995513492568636421407605657471442504794533476266003425456425982837247071034651492883683917088108395665851849127248103741632621208200704775643262714730747277176758488029840569551813400803725843979551335784554525440874084906625990272665033265364044375693627797948087817026631153233213928041275894261682265557345828370691530282837430864817922496372378455011006781029821805930682501943871393229075209384006529590750769536607229870373369050841944910411381448230523232803638308112583297869189160686774476882918442261680481429204941634756031725630041517900290301365882551142691279201321522248860212181892153969924826693724709363368776759424404900991610713997804215417136375980049118498061267372900748489330011814049386788612290630201635290251386876854153238195931485811964240388074546343645016276202577522667631554368322911949263689931628983657519571099632695257009717109180675260078639724806004524171808576351693013658428799010514981836451834171157555368334009441764119302569811219507654498591438583852909072272747766983695275755117704018021867765528319365417475966578352029917453146842050128857466031939930420875671502467823099954668587942571224254045320361260829220795959961378346454172329325636952584832137230904693971778056155900187507893140752296765841981035634538106307112522230652132398615198571924992292485243742819088543144771860201042418631129284058214937891123482417521209701229468064884326827841462299412107019326044663723308432241284261497093964492336061857881423249003719846207614413606608666220351534371555707794056431758592142504582399731546656325117422079558643592459339848227039361173549455135198726619504989274036789081912610912748148282602270206367238027967206705100866601079270786297281521461738068252384457790129584637912176836318657563958444692995570281342694029169384342705275383035890177619453819175781763012649675484471082592784817783745662764868316059810083392101353996149441982029760142537521291669010821257400841771274381713175558302507234999980326624345725098653070340571613223381879282691058479816635347799389002693473805127430883918386001759687382687307100362252526939881681462422746746878780727775939271258118987465399117791819870524627561291082240605835861567222628975406844554017892770385299317869559704803489168441698060672849285221606052342572995440385501321530066132366025787014801243392133412015280261905531853738782133314602856784069948926532335531677986813494915828732361672544240843271526633669671561555674299918994393113727932412870807086086258895008079072709141701383250216902004249196968724650422590313063597421462828252956363059215151306915309195690711887130192542521097062654581154641312028278584982141834313647763438851443168175930901397624587308486611074586364315892683829318243999412526115446065837604545351761851594808493908058205010746091493569867473633493751745278232589702908601907445076974807915389005939818599107792591742735224228496283175958856120423802439151634470971603742168546300171004179860350181207558101314883793719082642566049612784974517297423187845905776141557499969156609598702242073996028527614070300879105341867572351247892370296311905629745003715368628020025645712461830725231490590882686510274411020774326066506519066354406729722348950946018111851919923152956437306096038257970106484505318538198684427665700757660909137416364722666944057064286486213139653666137664959882731368152935821879255683940992119698477806675971354714934787711915509101235393347538773053655672045642231013513294591825794614480869148098530148838846799272846815647627015953867031691566239233167640422554110798831956668431649502897461182643399151175777145800103483550737068438472934701783574941468875411981434179451586993741535012013056308406724813809088901542870361391608005275578731345471799546259942215995349360840715803790513197806330015779258409042685861702157332922257076923237148986934952815162544675198829924957886216486996814316761439232316104293757387849572438512176494866442528599939728651756447236147064045808931882143705893121892241755603849112391143647233758349063873747224385436885317196471966625009469628894261266051317434201856459481805768045299008947982410526344975817241949262714697775266362963588419361073447413546202260510638428807022186169836001608207334245674081036547089917006814985245192726353213359853323969130811954068378567389381436211955345093989420194949640848488791067409360762682382837682928265545987655780893312733027559890530423632703054319766985456327958997039461872097824072308380548343136475123172439371400234127815725371615917786912119707516820542499059713975812486421981763296052305209769149371126035276874877610170978058197778721379189554262042230442852739299411399480140068564568377575071351329063578697018399856274577765392041911586989406168278658285464129765697835275394067137158414899924037826818252614281063005523426741918202034692524114165441393907456829652306153119167572253639764479913658790212831006263899869783616540745852984396896855414716565459192401549750721438576317839036686047376769616092837646324047071205502307847510111250625501352160332042265378031641087341268121429768319340858309784704944411802717828963118889110596692540842489497286688962695128658317539448158932929883118481346116693628545966533587164431539020360593893404122316319572206654268519739438941295868607032876146139139472872585939166168428236373134138785145401133415400451592715612958487122889957197054366053135838938328142484986182685242877396223490963026329662082933390737366354872660718081613342454499496620945040649421831558335948503102016076398453092606680910422635263777378843073069024931398243712550989885906737179476303804671033511726808206861108120997746372023245708112270516619020281419931774640418632747339422012857505828287534914383910361938925865748880175533110349411857513370648753516455962585038427958804372731601093649532365687264632780315765422585773625738893014445548103138727964846198380038628997391472382643303943311525883612205611451590789502080042058185575765388200716870144899618926719358703365259243278764129868112419742636463006161170272233829825243584926022736105527430709604786672192058061228141650303343131681557420819995906250715704398075575463973917625279202297611556675181160285320592543181393927543482282458546325444547854625273938630791148195623343668522503381016529498907063835357202307309037541687632341472968645999675678459668704908026171708184187206507771906153127226291329029177523667389147154367739080754994732399064390223576117498531809354049931991843625162590392417638259473717935365206444648451489737521595465669900067171732344404452735638681141329285842533041204864469208081784853931477018695368841967251908973113492558583288091304433412245217686192995624221820784652814383852711499081378850784210571403311513384182102979882654768529752297829868380988099347447265489847799043762758746460473352194924376435832833047462069207663421312503056836182309612552811113130506411695799552070942534711183769515338061601719865726376531769869321332721814401891959798287026367843086797387437369575604507495695498943748520365611274373566094386991692526068198381957076360339065366905959791554997346187633998878145118435435820364549430016699591367994173611844118721961692280922704333604366234169099047959669279345597896999661526780629395669833469937154715906288510171539006945212680920142750535598965306582816528863516982514909272682424028582612641363436902887895663372440702278513248811643431160342940073709849826203554020325484614670566441307285176938707964603347496835694621693477292053208645168943305179811958069693059763388715287262810454635122741979445395902159382150584510862847707648384227736233144607705434615861366937764913015115253657187016893144778294600686678601147674511195285560025862094413229775342834612179364464602115210036430351084416478979698450358029925467011153005707290845302591087296110680574277413401311512030734121349990465654977887686544414994698401821988924440227043500184402239558233969274997674919626599860716673589475875873106002867017269650178787943493077352224543380134453108110664771638890418195264280418963458420024202122282302981002380606844595341061879780466234427999768984620790408669248029657329649574614837642127452846586591533490496458421407153720268321962077548143940789347931369995269325919262894403364656025779287525280503271859073482861203543723382778096548979507555805087628540354760047683716153778110758208793598009335987654824292953685850177887965538437442949543262414808512093296240971483611339717465010106103929260107814348114827601748100859550482579733758743189139377195642133677817246912276984798950637147299566757391296087666109082171207841867557723466744627300706172634756625662746385565252254918352343098308468690261873312164612959522148950881569186512260110010719208723082204232206689231464920508110828712463053462703893538409532275277246830799295712735447406917040175125029296585224904392148926580987751530478219975759126435190430669798894180543724411443803212986660016147867800791459748227302790521794104832071131135333011864647369606663007483187530320396790942591685091218176555314636885394368189981701651019455556066083763244455323389751420930274855034780449460435603169156611633333963259396027939081238085356382663292067574149103541377649605325142494073245066119759444463296043360396927753531739910457633725713702562570307112031065902279608481133870815712492873847519068028907671042329824453759529544333982226328893524383932527069328458409143894899356076925425579348234725498598943053043064088058843061570609602708516850408471444614755318480742370287823681098624084006690019000499927726591670763195115480180635422832329586110324023131176767068845558302001220565597909642048721373074305068586524976017673934885549648051799295009193855160608936804035749568148259887671138754038577188468651836782621967297549756620218695913686671673724369556722461073838206724671787291959899762173205857387272900501339068960649414463335161154082108128188819826635790494183072557017782756331268056461557630342812232583492934632510207255393144528449693533358028563739160119341196759448743347903963330574912221485043627489168555255800625477115919834363042473507662453510690033623878106360509556711481996098328015071909212403240424777708862226822609263432529254506594271370491890713318747457140520319211007169816656108306219823850251474524100609113369434248887816723785114750721066705380531432986417869049377961600233227161108845939044961572597137627990574171946432691349940458023546431027935058055749343600348006418097793217928548542851220259158447493788283445255398786738581724576673067046113825602808231361518277707925699631892664902335145386387947819881797094239425079998609080147563982384590325322552714631341249655081946655429802893416495481718354681262574242384803897367496844169784590334431745969379194052128176248462918682953348337195331508970360243795869991582454269003444508470284657166658690713569122949287273733859704771449705126770515897602400697034090613124074673072999015427143856000881381280366157840436276804773562230371985530645060705823166879215971230408604721942355677226834874947897956093770257168492367879491228928175841355472028387320732814132934387683440256538622122259382129480652970639890149802864861502652730404167854136601789915143899908518187450354955140567406228333215187480378261820328699165169587567171302601055691427815273859304265392857064353665028069452282627680475852039809733877360677235905326183668583291112584719252981050895769481782182461363473883596105023606234334546891423543907094714169190130104852873462439619907192949495450939569959671819782739232108239174904193241477135576481851327490123120603717933458621937295050416851801363726046383108528712827716440487329527341495134611140960381697492754928268874229447157886907867357305701375430540411736866853479167264131212764873028472910964395838636835972630678868026134954264492449019914627099734129420326388290845876376059913661671701296428144507665933646098903998766509684459171672787217355932509294890017184300306920372257252471470841788300624552521664053312204963875291669052492780611406548294250080479269699244453186581220310699250158674752947452712898227857524716621767392450465675841461545924338346890452221807260224234880276267640952654544822685171479076227472764940777346809816742127362536012183807323433038992460225715515047604292067449407617779114781972183064683882454099851618840543771388397003490217944469307348043612693230011268214780110508769616748566829381348624756681119475839225142099683522594102768076093823197259077948020773801578284416106904781977883717131677764492809552817469748426659250105465143595890184181783206315085425195424266212051676692964570592826573414300306645445043376797203784538992613943776855108636191937693485925995717495206382491497265955440619198749611475662678045394214817344610645646344172748187676604552502635741205291210618899946147166934930028273304244074857279986091690239570216294644019687315431360213859897196341824449440626145368616555623590187357307428401685069426499926827476273860854001965098627067032941455928459634686198352387894348030427216390808879648609827628149371708270032973950849154972866966373492814676481391034599447733909388387633818272900601108444149731589979927895897263769903945947976075845760442233506224202620396633795188855813459675204120357466474922616180379935195608138575579640982711631545409285495389040985141152061082566502068237361393864055531656733806192963657395894097326401222183022000495769165071278269431663919291620845832942382758337396369935621824914216517614235603748029679542224156310907978786472795528789761371487664602321440425435427787569444055136595324409895284198879639674558586030743055302012511297924442758205149900055441660606286064014202616434608338968793331606900451875936419428569926726630267076579773700668571224150322237152028224903628676363984179154924144604909289579375965880887712259803411780477392421389637553760981771840041737796085369070988501339596931197494138550793341081023891482860956846540829179595727546434131432369625810024862109106622461586488195994909434394663132008234161646077659842514764194506807755861924158697641509243380093610966077190026007459537331536820395212493031467157109044122306957360456716236767296912694871697337919188029501353028490457620988929669173987204090870376207339398633710744318401436879917910177963518298019715408267516116819200881026632920215119467126185719692918803835936348698932176519432606001915693676224453013042067796184706630864255699153928391424612146879701418646880661495527220946623901045934277685700781727929136419240540027924423440013538604893161093192227122817573724053927044007404928868335982473867187417970782515833833592304004239306770857047350989430931233479167161417252595765698882634054446701776223608707901498882501900684597675377180825843194767158317494470105062129306838835233771307121547454001466696613954518306643083568753207025663585417196991675702780114039662676100284231068480496443283256424800752394957700789136253234191732201852918375856732632964268894805576619445403219763972518139228118825957331732406823556647204923530507072090063972929275326109402430607937944217332883314541907448864740885361445855367033738353620538436773767609323113078263471962190367344812586230096209882207419506053480745182398165218279485008282584868829369148517938194240874273026696438036075849352146065490994623119387459226456387023918703363669902590079504257551804499736449197622944049883300475054725353329079091753373082279158965279889062913323316297602059421789120558496784597576103907909287411145562481785705677431717621946804462128806957292782531242097834679013887902274078707029369486304642454583739244337556219792519511524621655623245159945679128527135427958530754624828559490885301573111347003536505099767363008169063865076087702590240176406553526044356110529218440801573454236487136419409330837988620956261262964784709438612350999791787336612525688682748245918959637737841433293552024755269924425164982723520246025533384730046246473312004910800576478111121378202936304362875106340614943676996626164272656266787305415326424908808500741847308337360582420551832477662377677440493073875340241651685965868481210923728957839102645875720241130805231191827516924156828595394921059594016685200608195839143544393270897390803528600188238443087111257519190450906785287358999265102418180968932883114201606633813960518320371781458620656922822177882157217120585606126386571798168900904053433383045305064225429690847125108237492650312313805559289159004644994265177759532371374788019504604705427337047828695594157740306366303365028493754014665236251717251732751941862309233867551007671780402036063578369862890779290740393359411554711130234796582779527068069277578612199676930223761939898920203143965345750494376246538843853494512531688534454007820645190607802336445502197168087207281439445899563249646171625136598351699291256751976054221692453226194538865506271972566526274027698154574797547383519157164500438013835038042735352865129932289665322425775150783054774819278702331689067869156959670117579328879310187117427091925137380266424767705896719046433181324910816692430170497198213513408862568643818072685330077886994898586070200532135098386219267446034807602847402779491952684886386649217644667413370063906891034246653747894520605793892051583264427461420787307302461437614694777906926162925570472659764932651921936207699053446305255437188649209687569815388395351877204379469775210784973187010099847494246260023992547195254494594578415330202083319853262500195680064793630310893741267843886985303378489237335007656040529465183363184348799201592722601894495076972180884156792811903468746024352464633270420967253587109335130419209130642717732203329998089280479040379547976031105051359734415878916840821831493883182470902679385453518517653956942617039844484743236421064036070984705282253176205556410491047741883168795494875251492652352705471545368023707866072401880970860845800719786938510941376711657612193675564230749680106548740539204782572267482932110511429734502238297980781266015930431353793878688794054233710587214269095679645368342216049063029539844357166339476923570786426251416866069908585381244914312778974848382987223270122713302053317989392585802086668542261895194983378797122702996117056145587441716130897474592149437768439108855869160020976895023450144304994650612662496674446895490019470831410116692483599722646694531102595920993934321939369386734794699547111616310440987172565168274290998399168452716760896644458369415612473779414055938344848019977223937268500654946649829820472895765417445364010858195258534095243862331502109179780304843257208862974039376970350051358432597974196774441901161784293912193153960144144920361438102342080159214232675478278077198250837877501633816291562000259200698206209349937537813095141695831502577992758077356022705235331087861684011537376447442220529335354565365948138234622094743292094601726168289036905796693268827615278520193663881181742144303410533479429253069819437439956901041116600837088958855979293299738844634196720154708718055038413430409393603322359607678570282675688641831296410661288480798656077587398829671694723876427226110326159119255882777203428766886810630045959844407887995529246006301629811985255631810089029417541189291257434799850803911493468734816930361654059851593837676007619309617043287778340981258638504541365758646654003364875556095938980224922747164597539682493756459492145399023630551555980745560663889791797266597110482146674246719833473231619639928209995534325748892413176768891199450587348103573378867972448212864848268555902830365550549194093175058045212399541263240545692889524820056365694398964141561645863359750844431071612024012816890030903068209220733366714816918981929567457630506437225885449857892552947840458082535813975021957121088948619045840943606673202011871134609303307757259480476127823014622251563469587871574193422280417318977222934726122239322262704200341587024816202328943801081401944964110081324491497813947550685083831950906832303220930897890096229152725691022735072573542481301080802524175695356009790515796266865933142865428810616941471986023990773324260185576695657734655558232341788448010521254141434951938989211545842837497413710646938964286902745433770058594032371285936620502172748916982942890507563364546070136792599685432096076395639777342357800208269569211726251598231195216214200471894753692193628141516363595619641478811759742679718729375339157904374112660288900115157874027241215251937582670346943021106968676429047257668294659661061062353926631588764434917639740225070977354612740631988330925062940076350463795593112665171463621509145997421294892036847719780110029329379670254802189335385770962990577950111722967465070797301461591650850314597065788400605843820164208618293223896678986024737690838108928118400188320617924569273991074791966672757582620796767268686185633871735906662241173373229910664936167606699898742399578374447245884869995951951587233619025194414033425244594972911688997282887311913689521560778211889291993609498276556937354519273894968294028478428051209207910825127764576309446939652706142971522384168406316563420213585769107599190100918084189771027202919485926984947013188904834947757492678234560248044788401311170340273639976110148276198266919401118661822998935709647319630624557369354631386129928404918447002059650179350236677367902309939119125067870312170354587271616695014112162023166299136239690019579146332496195478973122606456197406113918617409288625315755055760335739968467471305852711564977967898798827810674263607593617046044258542230932697099858937631985951429165462052796352829207837706653430822956304547367782425347848570791177465644624822550002078276129251320112998862186756812299556335027014245083453850543397965925521434446674377746611903844767333906282792837752681990923050439107748742824997381778807364681586442348716832028053163898409988805485031670098118132924757380905277652123378658623286358989427521870350649416841286401402979137123146821645392459994044820938452328443794445810900317074609558140206262929212168551148914020324407023129901016671185519995494454104390138034181146769255367306333848870155463653722801988860828570749147769856920846119552304604946784415683745870764001876105526248745500474960890452107601754496299703910118818599641847235819871209379107018610781986761613175256207065654617052420911491501775442343463600644246359673449746987533070965160597883756363462119766186577615295359723355601416307121512036875525884319749161632079756012593867827885430167580303071622084039713169960012718434898832068403269288919295617865894938913641812118148871552917495987307345111475772342079671820463059535454173270525558587683858926179387062461401402140369592052527821273988162700573128810474071282433104150241461936653568336674097693466147807920448916429107826858342811395855865164800905064712352013266973613892007066563504173320958449149394134975524139214398325313780224950425160325420127220212978737845403550059022572613962577892735185223350193224504830483344531075517470752812951143855347558519374243128700170212583252288190377131297318119850545201761862645191156350439064939803270662599441440006353864549636228531637949181083031283645359324517503823229030438235388455418542193454729907966228152876353877100592005995185376521313729716703154519765233371531839145272011734465130777955344744128305144864078390633212017806416981211214075766426919067042084926883566367449315505187369403071320793338070699594364414379209954960309137471542871222474459530807325752481614376347351668221903824328209010850603389332979128801448698147306804762412259282771239024705239849748455079421021699187735096070945497267595392686864750003806402602062312972512658387142932738955838793779521134287121833581358381527902528029816706255375397629512359388146868300967494599584533815205974891430546469231364729785972896399346908014920612910560221642162963898156005798781339345503847197022687456716196076721390171177671798677245245310847047583431872525641647365565850123539895263464739481886938549996949948002184915267602717848321693123336706601252021796979581954198101737187816902941312188238891582667556182046847087850035544280376666456767601455498122403800391714651093638067834356417794048888776994658239518665887443603014575830537508989162519633759009903971658499578915407852543625153275097455070456920379619512592436999382653364835182233168013491034111678489098803768900872800215251029699963900395389523543085081088660618970763150960590263706553898632876652183261062187585224465592744755780976662069988627309527571937512553132682889929712563933505925089002773862919905779077879861511161647869994591563142623676152619688351885184761231474279877611246181078361764822061199932864865117869382947160130837987127682831033890211452880044810684591823804937141149721246210713194182344079912004829246877799645982534831668180274159380576403888219431494496167505791390379138720753123690608107170546600494221228622115606936559559262698492432509399938442890445574372496457950366297122768545452206041158946017306167622007354485493186660486784103471576251370612627482980352550264596377829185264344487568850610081105881896287261979343711706219883381549763051317802778597492140195260770767623745293800976204496498132180843234212791965998725932955888155857574498189856620235860423923020036437647049555749086760767835401656652246078855710851715949852265608764106788387659606160631380857527487029979595669358768079925947740430144361656391001395108481382511919800806463054120135619142180121755092413042728223537980981295347068919378850042211980967883721588980856366497907706729266780500494235386301818129979855107352613798736631281721993233369298403147692902393178578588723170242269531923592535674879998409178738898824965432435576651830216140762075278827955863400731156930607967162215276468307516654118003777079758301047234367766695060375688412975775817089995670594581109718509572751732726314577405649173644244286519018276147278254491621323331131273252896881805840649973852171640512039864248025241953924008621436659517871021461501717945058853324587557879061187283005633511398172490860665068096826375886475370172926891068480818315524851501942769653360752680434242231563686289732420870246322667772858218465543400552685061104850911217758934821474665219558303435549486058207815139344200780362886127459661073243034259542072142107333424959186802687283255558585494867779252371492087355470590112558253977156910961520977562767453608717141796851479410792526085764703301984668279873318669072925815090817947664734328852347641878223653106467534700691012360583400107687394438980273334000015487681130705962947605393951906836492499037217098703116603887289319358683265725637824850017420268344837254865880867061312582967361110468216678519600310858402310925152686539124543642639693234546606537851061520098227342386737863777869207059797291413908313632018551272257790166462468531254714752485237719255113550537751815278659098250935642018702396383613984358084029534988140475151604676247229591612058300430420271167846903710861058941600657104299253259158434281335929191281905966317337262547681621427383948786715307595912807953257996542297100204793640723830240905981047673789596804012125903663073356132381419502286923387458044640749374415506279813334160006297135304863649721283709722277798112671969498791097350347276947092239148248277105940958128357645264723708726468668817276632875940401097069574604572672908416559067799619582548952702691619079951099355231750860719972876739702218819218835376560947281220806147856157514327127641627590173344895793441443554171275532039718241370859740396501420830763360057515044418820316320612494005458005031945183336216626538111441480053339410999947983840514109617183563564065903589949940614060361322955332176337633133834670531342446885709562433724088279086590848230010420706924356735543250572759179518956411470331977980900750690674837532317430174983735203588490319481087476283624835782013320808152150596170369892581402671997087519569181234781102964451731741623608115410955178577499252583925531012222307472663497967141336719422279890047393464402348520843061741904045068966770852361352351515356393252534120798593438972387408123714086872723504835672264535185440373302282598449606252901575956087633727007102707631582260541549952640625831828522452065918593548446320731781520454206374155738316562300394237217569488752111358535283958645366664774753574437856905971488466991087038471764606933971091696318188343452810825961926691525498319625451521567087145286638303439391368269514051952546560951259046673650054190377292272444769878056478995364202391825242406959283820671656211398261060145014161195305285286996012333997560096319999675003438964965596057847321980907665453226609751606944267490854838066649936557953033422297888509330581292262324514800073980664141056570725425690304951737200190518642735445217594127062251775138522060242182802834883203604992292312273280916278254343880103164251092663495970054926541784735519817257379967064903375627582476653011057565177179221324517367214259470024640130910068380023320547399173640478153857931235180260296884829388397469170147496917437947773077838882143303112634353229766833603304850771421366968787266631739148484147778898862521388624517216366167988084823733533278267675362944484320026081145149207560162309746597374397148425976565641026321749495260328663987337671074526854634414483795964802649436932413897149766007172300801996617025056419320885114288427224526741240910100224638302656132710584959829679646708791749067902554998840594360083929898715280589741580143511508849776697693824850630571186023928954482431231277735188439393455414877676877361323225748146408637058677895138684852014388414969366293126040774737294507094984250765713625896852534109129670630822815214654705551382503401012370333902687627195530463506651792751813602027821888631957013666194431607912802734356561413710968821388288346313349886794087132755745308681285667178687177094281362140527223136762084456677579652819626446679125086870276026159110854267612757731888251500633011631393472826366743809142112753361823099834464917178286855798111428457473170290009911956969578612585274291645212179683447960687756825400828676121128362227340549729287086435375451388055358720742566316077568371193717587886806412889967328758631908212196370707210299476826653836202352130306248204259112994913472190819119204467028763532145200640239697637991417498760869341854532393764080363105194555681660051898315925805871801252797529810591658979741937498952985566256194576213106523137768798179536147370172697298642129963293945628199088553770954084363407839832424585573656706568118975110976094825201491495409826974536063366001854291828238085450954427186038192074997581495915242140906334531737243434142151069031112866004232725736703157646926941655730611264949475796407085911427405626457723138032813894790079792964821525018305021014938392869836339297277332166256061759474078250571020620650885485336028294632920221374714661201885061733219421093869025788922819610272411299033090297623753580488648006427632394800074545644254679271023532089479234792805884643637536654694782011630549098460453921091661456512070265680077527071933061618395584545173229342914163385478877643279064916648603434862306391814596766095756977700752695490145469787058889041395045233099204801273762473594497033648273486767735661036292013954345422928281014601498352794563598984744596669015349295181087845406899798918644764191938697140794428075679435502133976245604912187741353051751153048525768880718745997715799896272428984145484108224363468544482780477303647212441809437161441842182714754557155526481020925151235375347231668625825731803987700712802411350459663632953307339851277780270848183680767193126967006145783146058142827785440420955680631085372229117413460448489178992004577198753405223514442391210960573407129824798998513955797897358443135680393412169861865973705769774524155333032595559285164508251822230219225568904276185745640784751420549035601409786149059770400570100547407900121588664738388495534389269226307471043422636862231186778311914553116331027958849038295964118594204158144734094332599221730832977486322934961657974945935415295804080086044772493127416106284468739903059205079095412909598205136716224663090481122322340153428441098978206208581456254160427046327720253541800267638216122616393593216452110762979824775581982242928667382783152375641619956324033504719975467883228122652948249919079605821311725552736168613278651064731149643856095296030758597703315334342329027345681731259871803584696599858880991986811687082797708550540661227315866742035747746901911572169971707656175066237727861005682783964280249697201095283006783797530415549061663349974493298574170720120696986069343405579417284707789544065989600610782222086841277671222939369888907027257767979283979683686961688254182857505492146983502420442972368325097352053957167072850913157188443760637666613356146142620125499177682048941571481882369210029170544867191105512944655327433842441541754592213301538632742134432542931886189595038225852523828893937267415615319090750820312272352734118266974103250396079328852321947951796189772470965203458920552574187152697089334688496612353952930018309871606691194138643072494513996878330891151541692690715263879384081314242376680139768191013027259519510519423077262504705601512611158219832262404045341947110547040507247545000043129242315049906627693271935117585856821762511510841921189373020348584164594128069354789069970750564557390211231216487994790601055935828410252735550317619602860045586036343130058704340060653281623792048635287675048159153170512560917764995499703486034647348955622545286296749222341794963502342244174586454031917287488389371909929673061175259652767126137874435771960587377910299181322458810579622529508245284444339603524915793152126456094606654172452300602404696807002813962898883626791777162705527528481884760491905396244121442734194214496136815731053166550466025986306149214234211613683623962113396971541577612178823736425504087230757865913235495990481584573403980748932120704393767562962155201215275959859744977073019928184281796115715315334867917633900514108830483076566171312668722770876820576670600347679917038280420732636538147704463422762922076158482481146227962937072149440613670862277052816756477352374838881146172149555035542222856152996405706734616711822456326968275871656612575445541747088342286730490577410971366702260026576983761824623728068126233114575637856775256441710979793558141142495818255401612798166748934230671481467244216190614977587772330271051085697810618286253384442638856948446765616953460869158286320951913617202494474774210593694425352841690694121075633293703031248334678846016996996022118019482117777089232853440833816380165931243863502929009926838383596338059200090738410971127671629478008967735630313843967258345757111623300840081273517952400634336388872010497946350602895760365408800425323874176724243582103362110451194458203656257016290626962736976818769026538945918359443445689115771486163894305664043101248931330890364160764199610600687705900688314713098227578661873614356370705326653833232622128398355109084739972527709960676547087729752318391088436472013996968537391625546937866318232235143558873248134248338402352825754580873023605631452245258770516851445121907673444016301445288254863137185825417880515068553535940495157918989133153332953393526264867651784318530412673628789603691101852072795379427669403918713567514987918741078294788983509799374693733066249035347973289671046696898521706050550618879064459086004735680100060963399399082432698880927840580010888649706201239331685689770692989338097666425150427636279377523979313698797264950912744910566536596737924386363975460133177809194448883872076439294186719255022319159891818662002586086590015077747128282835074924758319202388383807387046285730723645018636024099941065139276301035671120705050827759200789257676145286588975661861761601996101976980810746628515758056867216504633697156115562150225338230228799823370951922782675561398094596744634332929419731466761393254052309576835478293007537730969810600459247044476570146772679996763226009378836140745554713690418335825521970750885914090806407781699313311066694130134273238184558070847048548072827895041595250560871639483380294706661465466978650795039183908548619052417249463135954574553408884693451391248985232205739902439996923454952250539542405612509089359776813480557206785339395786293493537298238471728607197069706003524608337297514053830831692811564740528947155758631726595072443480816039438923831280591697428865640533301588341943975420482117375668980886763853053130506411474470926576290271093723468075508681926176630415502163746497960249246745803715514913592827906518018036527822017886411962722639310548079351334876990560156873027049690563036990433856445397945774150145001439724544903094575214584730291289193500826630322396608117421272694094716195135905598618864894742247659492599063787319764438428850567592074735953277019738764160857598445080644437435535972171746688770293813859639886170869483036151378714286216010216139895865978674772343194480132776050016597389017499538879930949336226567944670718729833174961396255940718216930808003783559855450131439738288446707621101400038978432022643414136871455571349214328229170034253258369407888230434330706853940688594110453688491030143376045794336514622002531003079018755149573742482582559997232851584272779983101206498797078821568864132064344623610034038646303103126476337882330499965126978617217352874076725595158114106163447728223152301538306430709539735457285327909772240372715850939626802721152774039605264794991191621879208796304396354205678465736729582377034454328301121414258113131524376171045084157927518116426022039716934258873493138292237113662722925586930035455716397509031311764811235456568858575450335985111256117785443481248755891493005215321248533477375347406316209119117973672651954574303037423686722981539903129102061539952438825887147502105820410672084281560387623685444713064806017340331701089371985507447651962215584669425842025806006669082938674274750854823096200508546182930299993015510338656813527955360509548632900124259565172725074022157373335309879220391600298630080844742997229610909662440867937147225021911237132000910543411030545519456787784880592225270039691887194646396216073864068061078941605492309535224116043396747040031425414300666408974152369552389778382403333197975158867681087962464096625058212610521682750610725050847186745339422832294723890389973687029548064245752322720193791192437857765106489745411049888020344913273188906715578093394601638345895525135793494767034594067924353149850286075640173042069057031906959728338829948783703648589136833783126092761163698091197797641632100231241394172558965235412239087577237823217896550684512849033810113069086607632253053492282580025428142519002130349145042218569358822855246475443103855989754194481320821717803717061937818639565689588414915716745385055545576578703410333178569350269067857896199730664180497003974071170475282688886325669863445806076740281996558089703912497544250900833523102000887522071849787473680916265329819177003717878817465700697808794871552290837217941266420822301998887945560427169896100307651802846272084448818480445726750812968022935126828248937318417010948394135883883024956878451062071730210904449196463741812417115335035558529327277853625381417000485265676288744360892932964936799763285354996044783419775483806075667677152974100620532984201262642331475726846995208493778491928465700529276876713254004241076634133570221792674094044100676350852723270667232040265037530746861070232745805647342380019217756811017125920454049549887330429141698538391080691695399155544909001176918571445966273175677497665856506799063418517397540416384109697004673303993781372744326256181522834598899116944165010680821367597392890283479873344575940832576602811673211047695927482356237040669743237967023124075738247397403386975164679592868571219511810427684668308218691207502925744687954592987532523164908727251213462736530191509803954185397839265160715899505437187202848521162777233559499121788788828969363179514173296830469855901332843370248994056476810241508113653449999670384539868911784056440371169885744298472692976746495640362877185269393722618453828324805649207283174950531191229801828745691591763117240458042108863641482697157181965145889053959965739770923673134432855566893431479596427523495904607014911589050136040991332670768621464737128263738648908967984908865985275852686766512987390725794863713390698841933289047499246282508623802961363439589053093722410829705860237653100773089977179869459262211314368800902428353747931077214713011223044970449240524430065723671087919036970151302342852491498842970099309418139902334011557152937939897898761046538412320171152455823712989799159367431251283637276185341251269517120725499892308524146573850484428004460148647214295995193174654963262113810818723028655775670347623651603395455312079215041235465001213021109503768380989697900798811739565793089476168918010696416944161912120339942411002926897754145772889226728238714490988757855881267910203044652553435748107167697407870168129394447060181786629795665181155959217048293851385487286890277544824517589551447038848310315212255311799918855648309023952984831615996569783785312173791200983014681901423066125117247144849031012762714250506806773482423609506924703525377236116447275439821107907502642947564390851050671343961139484641767549696867334479510006753358345581736740227196213658252469143466943334809160741847540585589555076540689949359035222778867442178494751639922447981953549107668525064845541003438865062929926323428460429329960970181892018361230721616010043663493772264708210793218673636921712944336056660717003597084959310217052873274254567270830791703808119565097990208717708703457665391874286240423632491464651057766192780419071494980339698251694554103187488105150855603104457921875741854740761535437931156888190103779258430054952906016780347752448422198815733151593059849534812818770525264664484523828275196203555747649599481065337833083955761776930662313020940185323917626238685940461428514375069674481137857404069852666313991586914320539604245621332451672229233011099665042792709631686519038161850749217610676087291066582439030830973490749160401497938608623979850615315797760220112737805962967144546489146921863984512000802614904967645548871378042712884489431378162514542125468187928231412190924509579012178998844452954635927651158789837830122042414898575449540505449390672646478625988694445969276852997855591378150128207469098118475241241297939692517363077436079875757526401498737532130925211085333231104335262238219530995999725082153578645930998010520432958016211187348886611298878975825770774812868545986753288876097603120636784852002763144813570108585871260734984812265525613147539538904041084254115173837349612520061668218435237057356629028548916293508721815156551475376697663197019772865252388441429550476317773586796162030316414076122259184350322571131570488320408247169682329645350865413998138806137277140298807104143977929006736848905611476371321497568613861690563449764077740900889726052644745446176428302717185375566149321376123318591406182626955774519959111539503458807880178822164054412409374751855594863378208133050686200702658906583426943486388869322353373060705408512230572369696899126497449132905217996620912690652936012799323313529042815643657033716164734206274165956295980221233839507873265618589533898017663150419803034277414521083836967919084403400076651657963244837580095098440410416370206393706326851452937508446250341049768946884692551008626628914554595479051933304141765095356433310883184748938725388308369260976324532587180702501061874887958037691555509578847185608950834803989990208493759155533221965761039981942037753948055747711050714821769986020808983369348433617815211410507892593900308458387278403931900886036452187003832180870194308596627555815988802256440894101568042369079177680310126218432963941799111889648073616600445026175605088675159469309688138893757619081464714759668721860164041028116666286886294687274333514334642961423683009337922887609332523875377716349554117739406626770244077862194952161654371549011400286908065861537359210834990879945769352413480335632696162176863841692956967883797142297620993213439827769383751071866288580974842029665992241551646088585850383343108599725823820937008422743161202922640657767776261607498579114231403117880008674446381362048494751655509581150937240741572173898791526279730615176880305587579034508135785512919850295843371556353008311531734327079752246165220075730910476411700845963574210571599523587487657590097834495733697777584817113693030896775944399121074054768154354962931796282649368871019433558298213358936457907467865878380246368450328855587729446639324530268019350623455667663948233543781044804197787623937985022428940714654603113624219232122221139772599492299217022927116565460702758845752585515136168501441402689793559532710298587085057668433001201856717181992261536635920234262248097471987875177210675916695591082018573066243803787612492481929614669750845788881891390160468417425395538303778507734198272237635838632954073773804380113821619187749836924327194246787073989342012024026037676739892936681404230307721791384882077014670383426676594544667703259784801099035983750174368355182940041264829279931252561610375387445395167329689775813199906596526916299832136276264019068667905217227362069403257957852064277688263277386182251216627337149638052329481905554026186028472659079001941972130302733830935714532053035862427618842660601057028489943426036762310563830638276469026573894093150790553995433623603125549161524207056503597549796085986772999381174478523845879963426853372671875627695747646192178694509002718490345539687668542079720972907155741275564143959435257490231377163780691603368539307506004494477254070073311973761410865923913837610821987533086441303066354763516287374300538786477520956858998684472041237192903253994477409439845331863388865032368202743944514855016093656174676877189545082853368667524301982171116328698712309333074823355952567589268115654109902422008007766899943996952996341828178587725990720522417779064157786412648156350093256081083590256465296922729817288990063284297527444928647274660172997834185768665577850260729092417664793066936438138978367579142335247517560486525452263095524767781109052144971211614105344637256376508846556217188323065343033141695285233430217289326945576237659369554039427937947240378736836365766590290572194224837611605517733257400359452974157151486768607843528348287181519775421670269326102048803940308862957274501828277657322054953615377934818573814670306169257996332419104152859136677956540023941470554735376295086224839669011063796726377532307718917041611453289605376128082328113682271023884807523946607497189494726946913266522826356983823399435415424979763536545432878986383492387099795412477894508508446024898391445763657088035462851338661295121494110901393584846800176574584113470778975663354779266036925303723653116831829656794892075949274990970070965683834351633594049154640749922277939161369817090581552303269576919275673116950934076913486352764429415577513356207505942363248459222615160981787116641028625065253717492480464954809366142200891830750478937352065982466136015743398784143571045472018533824743491827400770814604693642775032241059049236957569302386739065661093229936809313999925494129080615650977400317017092953120816241027507948371045231446257757899276351299629096637849813779801513060136904361335697013484373468329680088115827959873547339119594071312175380557372713323618075112135854534316292805115555342947694706528187137525167269610357287483157510826981696020639856549997546868708419034056597052941710206210133675747060273713970685801803795113932198629154270936010565311604415371495871247163008638756047797566635591947348738476368726562671830049391512110198888340760085440672453080821804540375499430131295424023263397076678886832946971653109682836811149976481694637788168927770811845344494890218864209260678578549891107445293299074052856615055223624231986279249862105984332703290873262545803597837902572867724992801816465031038568750728381731494686389845227479927986018446023210516745989579710816350506417113922387642485117150732333507649771355116351797424678763531860415972613166249328621763926665077876570085922412196694756966146778678528220212149336697403813579744044287172191811711057063288547919553008669094729069255915671801863910900643469851400295870442153014902023393262805545238637419451540325245874791621488026279037170620591830213062701690982997387748755724577489457208499016510358151444251343667823471906279688700021599270472324472307233665804416030123377058933672649186785090577928123795945279091810220991437563110527051043914056866253958646520508736524907410425943935566749399261539608129377885001042415424854295594176370256297034267030758692102379844381296178813233904921459511116516250029769075103822263182004338599592043417291362460995010349853670502982734171961502845306888286433748804457502734497526119960603803775595878354990170452249511024498022674768883819558747476649766726210929770724325465607830457636482599076592724055419922477473369164085515230577521327348146129752938194160304767557275319634171293165703510750263013615852146124575232385424135050131534344534528997662197405986332889568844903082133614617979744375857330878522763331037900562062626532702141297987604675832294332641125514295668175540333162280363813292006315437381171507990858871907162243173586094560973598889502265922858725094726638213717037154606311192455656445198364398397323874974042900970689479670989725749741781458600584759031946088599518864742936502963273174955593532045202046099538330684115022828001825344068909091396906626086608110895584783009855829582732608258010238565923076361065315308043754666075404773079457440672271460781999984383161210022705836748250102797570542702994709978281844407237839258226797533543789346634911940889854748973576995427970851018428489001860109883484988273336146795476065563751365457635624988717913987050695653155964119747329582028088432633641111502913880895242052603367021966450669671402960079437235208385601019657499500068023264592601461787744971990541231007768371429733778714168720162818866199276007511942347881970688789188670608923122128506370721268288813085699452437528291635877705727868389687675252602401540535428854496770971885394190249069303644923130504382733181833024144767980774173440573681093471930480489146034050495885689435516208804209240701911584593438206697766116993765943329768705846724491133684542016960779945396151382732811152644885280805584257255313493161369639830508056500036185338298221360494663318857908777116539963412339553310190247462810934006832781437497568488119429392322668623974585894553554736957783570522649894151933172584244991444589629132292914055477608737147215741256963023082851037057263796949299146849895548965081395725591742832318972170761359350314279015733762991187926195491795614844494551256618793312674891549686743016162234734021864496799624470991043412822285671575750206043152511420326518901870706741683681300109382946693271533393066736995752099100582343693105321990904148070271107091096129142595563073153931618189347805437387782919569751148338109130632697050557273357374791325412775810732301870929580732395541926288354838770053309952273762819154838420665404475428751609317242828095947151115241646201470731761279071487202096938020858918922798667097808039061486571070998393102679798978912691603684352830151691195514381988211753803587770500964801615403089825837510470369947976856956408279765468419321440388593245933927164334906898658566237546054373595704438125045788228101872936017452431795207996134683134737255160916607410455974234405827661643097097093396906232159047944693368021361734100794960294996607788653583467537433165334564383384909048627299545630780633066264050602833867315637207320147253839912876396525674453123231855428370805382987030374618721436133854766132939860210510760123660721861298205865961686648817173162943739484493290524799614592670415712259227411965012897672490518219835638664498278989562019720262523449841393063815865978549460008668965608843407316901817467830497244872113959596350339070191384544967463123513163030565190886174505466908917067950481919547402635189263063278433926419973729583762719053853936006450577124785454638938002158115049198011231182195783816365033478388363545470796490118288964770454986546439007938329800496783334209154584412596906669723279474300538731738050070380250275172484787843902364830150332868542926188524818625303436021295551575763325540599264174493035807280787632810504804357458192536034494315198984045552024976727007930209758034210679066323682588268162303928915776725016290331382482077886891978632672507542583263843734807132139817441589020412593856481046660950493157876888602342492198402517629159392158228273464482325048459866880080088951932380137125791061031557490499186739363998305857966288682956382112428658323743290544793996748648010072481716499669215473408011256975666220263783707199257664302653974759966519326009460128685625981062512148818641837379486221348817782997640020030184865668473567271860408703393640119630534571880071924097749590239003642306118144570278912602784145825763482904818932775910289904026016007137569884132575244136232652857087299440842933546659756018150002352060407479696975370567938468201259104209434782989761459291958210064241618514662212295953297821771599927425279386063739815396178440738150944640921691990604781593475813058920459036520672767766716497841717073217303686980696528269278549992328961331917932070895228090719776718839907257688653433072080145483907478235010768433301341805254988096484752785974059514371846741659466932116851467903327688386117546069255410338221697818954327489106650755501006160908102523724261795163083987475665776246441603106574371182154801327232528267021671305170698377858961096137550823762318374806754063193939456047105242313178025495903724494738070875340565888299416488105965505235174372353204806302700495610285795193536009821742408279469502482744956744937345938867594499387908636394707084576361736763062926159510011858271069741109232646223694387561046799186234705098561467261509397712619681324966179619895617972625254931090387344135091184645406954641596506353501468553321550389868753420489737059358264162724606610562758481025907251088533250708742695374011845762344357441966591508001691785740214092712478338322246842111026722705821250717540843210821894272055886524090462145116313622984675254243963457878729007991540422755984303666696167720605915952847774160665408040707675082642616505671455041688933457827373627308691214111179496202787625606711276371272004383381170253234730161025028830197019631316127051747477494751442158616791897766159405241678875586388981160401385735825194912248370157419110411789802917716693652791183303713738309066635731599837311857274247282822970552531770175181792825731494773757504181742997877102255270036077068790054350865875847492394567343772414427934594032470340796063741805745816034076059143309791523644081118668758658241015222743224272313688228996441027193962448299426414700299378445964356504340715305962378025920901480195294023412413523478582637937785532678752100622934253766986258260128734806218235957929499974745001226928673774805731332062498984545634317544339454463152137164737470162385243783665062749640658417278197197996461597347470846052620384739277941497285457133772151509254033100381382083023959697032002972419199590908382323459908753593191740731272342999931136078135669361826278637702309813105105802178351637151072973462482549181292435298635203435648459113266424753178530278183950458023883541573790950638280625852752974689061601416494722705891200798268334556403720746142189311467548584804416619257430287108032122798767173583581327907866729013349020883636629849053893629281285314504931952610968428798780688118778318843205058316301517572016405430273575030244761568807090531513481269637208915758305066005859610592064183942870191500178885941723545712094194972172512236498995948343534713153406529712811738359180376165434520179687319211858260309041456452261632656046139193408418680635544961585177295814640224837814289998160618820862286549836392996177973704990253977368842497927691000535225376584376558310501347021140065581829325153672018365830239798014277031321075044640953029915796115020342777157103727331657136300402014603258751493675470557688457804081053169636964465522291808708261383027105408788030376308732076675902335719466644581434699051494129669205518306440549848282957516508593631718642397734244405036464965513439692078196694429522156457641008192028092002915030830921804786999223807452142849562745142746477348673149753677985465555276385407242223548471116979052309781167763581222467990047537481159323346588848061557375177827289702535317565120329512751725843543787612499008323013606955296168595622432455980815755067206833956410376060518514390814185599648080526976035810389849760886178075661594194974496108173674429028867955210434072240167954490654852437286533096375615198463540880520101599716233817460908794604143496186340337172163995458888304348780848582667358785139210415530461071551549060066666947307594005478790777968651733943020624658536675913921590957753783418445150488051716934036739982640306422541382106757410213512479759332648331332193668962733819273113342204217999516195449031790384349216853948372318705969479674926231494736294170027809741713563956495565509846806759251516615485745257758480529534189499754612139151240862729961488032053843963832273641754475872594394693223796620754386979187560468570139429225745516663874568271774519873920698069299256527621502866699533109490826301781309760843789661762227427070769062579247056622584271048537038220735151652104807590756962554944108138530453898604439532105902392655275645044104864850653386799053403447259684380503276258883832183339639207410356578869819745488364897595024381116553808495032020401501599923173376810282804138756546011732708120123015725612319458343943815645089396210846219286495684216895076923161913063312010407038235465628386485841516831076493553847400343402126086968620558516866594957908020435031946918433987386068545185141509761208080417443231666125058881341717988084396701717357185740072310072504620895794519010966808993370457284340518509557595571105180923556608005270732920111402550838101409891597528619668840509753857548285965189563453699627484802792537990255560431466127641140272937353162488101070181508869978050432483412487257574887476618703349969182407308211346480220603279533539557126697258045053945483101024515188257986806160304552127171023992192519076221078873655440204361828200143212339622241046329954691097022955345732644697175717093232270904094237176437531042971217477093583061840024039296162159922506714894946934156574386770488956496005547725496637585581667478644150208575776545920688972614150880297150902662937246079070911821546492947370839788503180164426744055006445845609162128116721777302739698657224745659335073256318550054580587976475212154328444564152684836127654230543558999302813209793379709772710295783772850168431893964702734104963714318153237766315617786468055335231280416216472054660344773037083418819357589590299286064660681214021891036304339752262464564561552399876498056731435833934650265630094741257266527400230692699978990175264987869636190896855296683053335424084203571762747431432475148183937716973786656581373230288055205798446984975519492973605127997452531297677689151960356211698726962305055875093513491990786904368126894622636672032278497601796202280830272622829318591590343345038104346430437698001229433937515221191605185080564808055662828748008504692885107034240472664079418593986110339184735442213088401423808806807989652572681026317336787859071160324129747310886184448045511738456709036637098458396164523551457936565447920673228382701864850136747565450221572639327138003971419442607331896850676390489963581949042242759827977077560987780299405342036012179265870581433463678687711304092581847186131072789487364311414788987398113178958047806856062088615906185145855363535274907551685272951935271647700510824623915557642616669039394180384040520214170216661223591686522042200083404015641333280911333110485078581794900585073178230191542441680930475173836195461974601204242205301091309947276450579859905887504095662299763249520088580203984311022674233293047933557551739000357720838423798590037511970353991219317008604487117237466829434864639619467023078797331021939262401223491292577914018489498377974313920086513586772541943896375305336381321986487641228688293171650364184181127280763131969804654923777565665712428346581295666918793297838636251935923607375591193746566307682151621933755769694330975260746770279510540127082455746848777376883089742878450092458715282809547856876138959185115768764540044640594383196064911714870691130926382957580417957497590990852877076924788496225746793673114097369224629313187087292566728893369943675085739334210338517591473703281720384634062224862944912052457336282180430997841927374763855027867722432189295352106203697358890992229895290345593145811856841044858302858697387179589140080879355982375409399447587658753798912918914734232159832511873278180257248851254165137740818183995740011285811996418258224728138069675091378515933694227549179970858481431790848751836668544519278084195565851107798032488460738663177410992745638888711559995218029707001639502639602845154406825016021772672188549894649243424250956337847130575863356786620401144287052067836877028383174453073171553588578026149067035567771211552246022021293035721555152948087207754572188494949769077628659331128495771302675721999715715879832318748810667654653101528319862036709443406426511473338239776708005067841214223840109979911576959577826984679514154417446750061849311698276762467867269802206798181988106327091136021806576382702691737853951604004689278957281703658460172673777947746244758364683898688050866756884962903993594285743404851305581618134307239653994148598640247118907532431931426491834131098486613975719552228161214584549215497241394632504146075265672895518685382741464560569569579970249961507838228945279776632196106793986069322213169649646156746306254387447605233288796440314170580623598333660888560915111778249028523962884272781204554063818247566946977383988295043564282282933487246408450543432578883122712375852370402891083420505868197403082522876638147863973374121153371391623012978035268697116637349437975647092785682369975198528171919846358479406820543137064187717279528088535541621165667343931904958117521015448213891375021942647518158607638487392586075720330048911390657224893539777141467500526138004060403112507518792903239216133014428661093758642868734460820126884370861052017378650604399152776986603081235681570082753398380107429029222852737575748005997284852874315141335250472720755197253203247172748018458038003263943040572339529990812572424150281857101448982975627156437303200559369751784050780134791501272821947623973199981697021841384180548219263333928461936637721245478890311220561491144350503614373630821820499407574993008655450511941961253652951562331269563235724972517845559272955746124667305015909176482846275512985721712868092793777172726593316168505212775165684280898698511107411301592019380049384292072775907461577863340272148033125522707763573150507955583544713785022638927778050242208471984636137201197606731076778366662764818661233904039485156851202867707284389423648452950185984933407806878972525447160000697439797592978603066538660494430706009008065203493677151115999982594102151860628688435342097592591809502676144968468782444012481097740994837995519657273863710868027174662182408149709704481215218937012841662530835324197374798603167406113833668357872684746918221044013537971398254972195341330347236287550632776686090022021923998177059787159264991286565011158075384674281835038117357167828354731158346486379032626928994819406317558848367768079267887106701913443397103480729963190725198483783052979403180076645901100145343910623607643609200040447191542229371960558360871577100615588762859713258203440313971202041615053421015259030513573492701153037791019281285839392079417170193466646359566562068295899776092876410436534072776167456804313707292919127023358932411042158218669599892917639888578094902954183430416539647917109990498844809306150004672208454342415568639191922807866466589675243112107166646920087580676614564919191364501257338795144645630303953041835522096613772456512651610755354202462442279371816220342286633101767735048196175374138270567334014818460621086495495718877038225976779988799798121524723902667187957536781155793124385872591597265863062308771897045174147399414833786583738046113142875386249769493503286378949480913706788881624280644261197972903863526907335235944370185633621992681858511140050755708845359837599427917838926189138516035017898917050419131142450129325791699436296422090782359000131700689810722052084928219291171978123563949017680939618271833950425253844794859798291365044999977214256618057281569868338134093750768361432295248320930150697804990171544222869886631574963218413523578841932351013704960802994346135736551310076360834803946628414602737573003849320021895470713288036577665168690491728673623224476048099314021594698105612439550800483884548826574004633713627121890681411513953811808548042770262591087114254033971909630860393861303879043526219384763147481318175149117747727421347531500779346757638988877913882442596701787492928562872482710890912231818609304498806299860955752861887102552947344704828688924540313704161752798079030474989999798995517867553577706416197432223153798034269160558720892381267839328905619571190613414374332971340350759156179578055129721169306400781614427432108389034251461797099131173891266257430300934032491388029385597059855782821570388616798800906364306522152435174923324804641891223750886537984671860819633927158727864303551542172562383572825198144996142842922140832409531510233109280011141501329905438264799483096098126295298235959154821436197858996234986050697089439212239733034095825339875194218719140058960535990734026425705659894920704832527540211353344714269475344450845094476587642941988809134530796947794087665385402236723944532485099117152097995130043255167571528186510319454877349690626936130880457809876470484922261182741120590399905141025242817914100744275215153818854745752714358157378763935298279034137400826337063350175080192063083424062887059805516192310998940741117017094201218213760284588578312034685881110066296661953048668388915383469016237628786502075229298399909520094171647650908444267436850989526409354889190438025069748499415245203621941308848685717185346045733344865852271135744519189917606318966970616524698924967292343890479755946251454649896229075465132153326483924627435217303063877830888476062037120911079083288754657304210037967161743298315162916017999457498857256590756374112365147808938880420014587673844819168893413971296153580026043226707182779271778531160552023127918562051003707670560408667569431514461932132028913709364392968849541893289135596099521475747868873487464968709302564411912708327449906509859184289931520099825199553481827696259847262170337302802440322425738449444323288592343747006045122028495559804423735736480397006775667408333418821308392618886037902792895367520987311668008996040911979563519638300761994423674292728436003947386722536865066547725549555453100009781341403480481469181744613339308365572930012663692799917117119449079626402046465553549182260582153102133259901874327678064946258003355393575321309154350047071812413564077596203287297372428326584488099236506755884764663379068826069654935110456704820852514398123071667651299886060461561082972943562102790704866637250305248530831652739705612487517781916160847971551371481907382850268803655690680138069649540751681284111682446521981236175642146781008154697475857496624143473860839975342530292953001461083637925441041075379686231100869164339036254947868225685347060608458675367430298440525216769492890251067691270527437609384999399620493366327872309536779452331401258527744609475010958036327154344491757574923343324259730274035056531527905252266588910596340560104816043343920867196538037685188326358750432453147827957598860574921070120499871655307461664423265310872609992555788842018934293712434251591221139922562192018255940352165563044234995133913151277928209454796208368507521657129811743697600100366656689479327852246532126529559323114354443793723858449121728698466754631756886781838933616294869031711048728436466489145569685711719900697654999847407542713957693675845289327817041832508969880764757465487659654196479310850985843507292484030471537114763315702550333052056011089103227613671204244693409568598015793032007012178553294212940531273073713985206712936996240179806970855480451794561926373309576268013313116684857117858787131370989786252907582910842574902599246221772037139833321796096058948838017181877633213832202821231783016930475030803088923054381783666696653719792167988559582221360355092406825887774657041468419234572419506112516125371633106673745168105453550814114196975200352361508920450285977817035343468427498906935909318735279138605652919529087765273209114376819515400057163476302878453122362931682773164741972312021562944358030393032967391129088070476867468684598974480843946872988056521500210254238760062524510351052509093326700744418202115493173036906325834081405961954524789144894389050407173523166538395209174923923672124360124600702691916902526511411282622331144793902446576548822948937686682499232025985636229767702836055265071992633961658149740740747962690919465001422750626261159473874174659271797409653507115570312870312381479686101857129205119962067142035334026704323764016354896742724338102215456928737437482227967092276580721503980341300312027413781966352019017705789801917331143932405723659139223392121248544262431633790953129054441583996257887870677171652824738368981761975571588333677060653700018524356578847116256888046455576386537728292909212135255347405863245300992376075311881522302826773054444566503665602289221958216766567109311510212208719092396947988777827822899208545620583324922177586964832919952064485944156091119255900601404624207800884230460646713693213690452569467849588062440990919828817155081184494879521726631234505667960909810961558778027146865900645459294914375929586644833817033605055528370224864102880641186462718033835720781782469960288190715558817157161437883043019399839132226767606247781365556138871634669598094537413510058439104317140474989499390118992637373161905903578121083797461069597743608891048380604911667609619438319931080578563487635346175682421382106313641695748961846333084805891865275920453353613906307845079164714647778948762118060690735670492647747119223468446397070538405854228941945015353983135514959842484033754016350962407304306142142633351803060101252820251875922751247788920552611842115917238587931925907953597353642450676019904271815555163434782522227357135228909387551865824379056628928964019269073577398315737819697320902024044612011737719054513722283597777959647913253065973044520848192585168154293079995054852870223712821575279551980588515385440326632879183595324000539731245600163030487682890346362983746941393665284321975501669141652593257678093556293108730856095346330058523920808382683126335359243005078054357078566083974263395456270437273478270681924541691895103615754347573619321151644449018431929704798362494024525490179932150721434610877588804832440774449698931040259281658316360583761901630753164544576168198356072819265928503077671211114021209182857082361864052297463073182555931301316942880172560955934562499301761880456870813691067921686107123053474388854212762894289770068190608201391486173317118535876229324693463104261042020447031070680964177946303802308656344383324521676408775172956320918769028776646850322472738174719596622255850345068880890805066089952252459379280379536299218195644161634146430218951304991538538007498273484630692318173205087613839121382135917460842988992980332753105152934214885296441690872664084838641717654380493512244577383647822118566360101121084046950860363188593933781403450831643249323417073120387041068969560166531326571551801615249700964676136369816991893546419937248115632667774412518876424790803947208816022712233466124270933232509005731194871065986439943326293500216960421502909039128670592589689189171655256276882829346121841951999439303541890008693311297066188248572832887915294718752388589969935549637716507808152121685140143280395508616577216483120892311758170805358899980814896589020667395282622601842723079587208158200034585966588062463536204203498028002856412216576173241094673811891882515149115379092273684126236957536938069267648936740055542958077355399267679251552067521370358600548320306162910050360829883461021182164827663642260937644674926032212772062629334855761672395438187261626826773972553009924184253101727618079198054130893171572361742622507794331853323717193720247938470676899120148168010373891314138108794549273832564368181515622237880861604577988182350074869825577820927663267861286409363184644839170045253188248448759652075446155843166473023667860620205098754781457708174111797902232540432488284721843925180863002440372442871559733784828302785410278233660359314120104895524569131651623028280854627933419042990906166226269659553357835041336860218735378085641296956602512581883293231478155563186211148302954780912992674988579112265695989143104421611832462731421818216651815422077894454597136087186600874623550846192070615834458844974506674156178883371294698034477791023721369592653118347409648451871592379483719419400584534247331858041751150022655384839098629092804798338918209836129740098236626644695714564170136705531083772139826519585232248436568403763267601751081908181813828800623223111618014277738915562662972693051559468591475323269821359637073908003954754722520154453049394414812388221756457844236773471110125684560030255080550427700394227917298449432066327650931775840076674778742202805145598179024633562175337279681492481055724504361663108502546737559856172173963917208671587977154724793399614463130042380463936965605048184936838883685114625641112055850803864642118792730343895531259494505417195565231617486820269745605805908229370582880794145858198842447343727506237170480339636291789751423685227713097062932864842578910678513037384399423617861862588151595125845494816467053335628840628931117700844196335383382785122377154329329808536655125690249050335001419826546079772619739861831863635176802657622489419592175895633465844640014776039460875843131465103056321976966028853348986998749244529731877861152260618974465945549435370732825358011528311715894247548640485009666817914918222666021796377107919651487104601541570046331789995483978830130554054076969580092271982265247818586225290130335446352064347423931618935565657655602769289068020544914475768456386714452934856419196971830303976670274997045851440771314683999083300022091619409587016968867165574790164517754190164913538146729295939093294525456455795513347659771398381595793816618467137047229352800336803154862858291635163596376359371100126038177521438763758194039363042061790015464475806798681905860758182613149753496643474280128194010791233790215692418607887969875111527934478403163734230080624709090387214397747053595977416034072449793308686762384863863748434720922565114346815861345709785145884421103356885605214763421992544933176782420361330211699419458207449653043406830875175536627293095121763354492084569153326136519575389996514870871207288348593181125492368104036138624695293451244496798490182212278059859194071598247015580900171332325326784985841144931782720227207668759374526374654752534614220299830270365560005822696483346661272368383940337773887039909679092166655741252583897732659736020513480498027973291767041188455494319383546071183788501647192078150863356086150825674833871370425623159224367173927071656688651855273857026050650442746463501176400587904006179028603153835148914899489336765919971749507958792116729846241687481773351832088226574015625425726772185524032084048756687663960798605258355121172469104192009799181828065389171641746163400496350329487996247282354327751698211676323427592162315023096222814786733292802004245792615605350734875620851808121003547128433339197201256096090062139211212405828776404657054009975939460412509998232550100256610933818789080293388832245676282660104334518986009597413740769052561974553182602245485413837369846810932348886085795198149186497853162053090580616076049619572309142370695128649809706375010110880299973763168188974249011905688923435079308031334914397673141463704459277046567086827513622228794063614018549022654152428019560432728646176412870953341925371897271904870820110331097911572320142936567088075989607043424206012111110295545596998057063368400356162231528959009763981137531160611738831205157076527040975454061367870495419854963007701318739912436314958109690381526023449819733718794862000904030937336193696873658367701709046271236641194288224480712176693580947902308352201657781562869594897490018055589510159467808553415773354779151581300674846817447696148977942657006061092307472856232892989798636479299588548170360650952884044805826619474779631278192170319120035670555501722973435207042905338566542818690557068681226550863058862060414003237335241674013001068520658866035378831132741600078503395755229977666151605765779074436116309351322950678197630404907471629990907164721279333583152263152300837940707923813486283235721320509121921251890480009656195402948260959452351653376215521897330393692767781150795784533867746579160744607340719802773418851003943747656942507749390949602042881497323251609196746632483048423356888423277191899748927597415992131214041293517613528811094696000273831502497767271050773018933701823091270858688841518043387131606902167708823325142307642195235854499953049497747851451631890641817338808696064637508810831875203091909967006437569776519945829458781971516871388496120591020842469191823040279058949300118356950739811954222912705082977169774724004101292650907667691578594641181293658880521026908679595462472085080776074612054956037644814071425998623782336430912672225395597311984083437021851527827052139255807813615057206060648094068294663379852284170816045602040033920082213768190025317446828690364266898510210037824699869204568430892957236313390986884084893058029420947995402735348842579668328008773585385164674535934410929036025424557029896165978613598211717807942829238159111228218221262608511718176051628577916221855452679635801414555243796316441142906013241771614392559644692007681382346151253153600393297124772680930253303915017441286869404345125927602518608586051956515589265788791768524222653663216841849317362248874101678175476684790515158941131575796812255892316598985658167525945064928068291499685129351179613626761149296350064640008885757865667569617388546308229799357390491953417987671054448618284674044074413458011039574354611771395962736464254713580726560298801937848742145101106673568264239557214333426750863376981047362912257237290063233193175576256117737769682150663911745813589626770965055307238130987995213272457879044563132493041355600248952663588285575332680253991365240310495333654770442657735284270316563267983459604836837231222054368530144429671238814931834142953662655371640284367490031418921579411408173050186968593979346917382324436337456539400395652802745368378882638359643758374538333821974411680132660513540760799010735925538599132107316072573706345696391423948116904598317002038404568167959016789155248641601256272714915077041749720821089378870727835246664364355374386975077772682439481123583554821487060349495060846934268648677632376235125025419842992857861904897813011451967334411563567415538865635987391409365397742890777034133444474535221247881683138474069794625518422599699109448467243381499873685786292874789312702477803651109715550889215014523034895643558245831972173512091531400392205058393237584085346741692427183200525677556549088577175691907448885465073685777513317375826416913347005390792123107770856856698182181497586927672647284356619581735453034398864768274852830774990659329441327589018236713836784663033327742498367703565269230934603676773450793449517800948650576996447569140837584544778223823081940634718664035282478930581738048169644385318486710418213387447071353678254971277917433394524029185305006756075608249451852463398189059084515705366582419911612642372170670801919972659949092290696347641873576148933961610617585326052116644873826019244215632833662353489015652702376788408098704577987713675555026536154198296683809533992606759554822626822981473651252734557026879522692002381594141485427805715628294365398117122046861392115739976690217995251302074405080596892844644137421493968271836889031955545088898120456139200841015213292567596167673153541151303649596178013994144666329919616721140245598483785686382517086270846674331724205381305065872778423674919945201674892791075944294413466979389352431087510456942651521841682390797000498756282035523576065561996720949677243780377380065279712738746723381821914348511978976786388353881735702062758887500130248595395486910988490530526851722988156905857863677967592130072390681471916904946313674577143279711092774222173171618514288027851325931788140113850164697660807762511817204067314888849817231587222759951023327531221834817838131351794418154142833119885576693463623197167784801393006361060738197279611263456309434447140203157263319240141332977463875991344281739557245265484537809826387654465701609474508468391975158361308426198217607748283722711186633889126057027499283017216117610622230640222679247070888611330489641808406342649737645091597139048029482580766740730489724307972649533010429579585120085953436257201406284886585071190818388748441613111736080384491662617702539454549421294697794657283273797390843159238168093141561085147900863573916468117511495708716798199576127792992460953718191947864972282418044946585299276025964573658097340445948115092941315841683840894990717075838318461187012978910765292979699911199896663723166031979860815414794298729250740017785034008837290476733337959545177905445158474309614572173289093719179382276263217793204559612932501407836977500437225678640282047634012854148436065167043297703048447115738826221699429511000835022481328019540630566527932975446923900645745117708098756799506582312755664744910972537758039879814929088706408472588292990114075506038189662143889874579829856345921505892125323838804945138788085719376608958667311177499849221469186075781760388349261670373969889134045774851206037094947925323975546125798244405642057213317220308041219540018129818795567184095664021706051600982234242713150949322484937374540147202789124230377046357640595585719929712840936815185384546072185154332235175105289110721723335652413872339188880059485655404043236372034864255174514694884630989905471455331608188710208838872657634050843397591769337079536924815518564056679989971887551861841253853913160585685076062440454266662685282969983655262677248714887276711964513834111689951798177825187691246690092999353823597554329748151871898274453327073946776631807727336878794508488881278065568378538477338337608669971909351572781269194288113209038280528320980820178661254367775440155882174482983115078125362056486448173902092229544432304413981745250508572525524630124552041401339697598401237171730937068439028022055612030337338529540566685189777305809551497146870555782361021523189673042461820026318869450528898376953653659414745029144694025505443866051246396893478696954735934381413221598857424855116254700040106329846836905405086639671042640705810341591548050678024756107821571549078161401172820724958573169298279556971386934925861572392560905545267278945259633089258851631371375519739554465452248174469313844122011443025620421793234933694478320879692141107491974269839457329185320748398666081907791343598158094525921188029278994366864910145138303492344175964009208478126340708760497296046934325567924011819028134248917669613292492860579606778679319702038224753762599635986747538756087645047826730612733834308210026852993253164888138160739037517059682494117425507532940468025694975507452161167185717039029585289899964450869137957036933071480527475007732531238769878151403611759231573617348337609130171563877273055793670310189235770363981927889440307220561074658067325870841125221407371155191070249101356220481227465123800743373792727431374637512492880265307236650989872965348516772582749557144417094249869246942942949380453484858556886664063295975367456766211230838193234613857560202087712403468024329728397721746621018632572203773981864384813130901672192015273866385645337357505928947932050719553539381972250588280942708953204548853251377827107852822814338318929033730001324807761864285053023422814853177063748584482897721374271934161895819529627752465247720710562774510548847635335643229315257932623330725843613944399345433463339057951151871025940066699529340954631654632595203226624852064577287535440823527486125085969738334470449611134192797901708800443445476046818547992736790678140871792408096071594869135306613466058039951088415851143794960897948800599227554840311672948695164971214935749476780561454156979939417729429503387288548511939009068578679956888440299160291310785342288381734496989642128058688893123290800615802890905644621482451520172722796168003516691763316135102000874358378755920933927241991057716878290096352037316624712310859402464030089771654102270241798236471635989956957566985971640293419273716018172786858888780965747606369618391271442588618844906022195622705937746148776712116780398229713174404943414809692631435904620045148971682503990503552444164696673731196643530447125578947184048768570210909812684658908577366661737115020738876273558275445073660672595626975858719967638025722718307408338778627975983202814408521631819548270079194735981102467759580679110381568238859045639043211022151321644705409199047653208518663678149529354383651072936593260930466374531395203809778709567988986305844880731022230595254173667388245946822091302152584826435702903788982796422188273503098988912009269572016953118135832770173445411019121391450568251058771126041621292728082021260839490972867944462413811236040590428683002407367416107813376080688098381440359631894191280207156431462626243037721569759596146022378334764385700512672370839263468268079848417200940153317514653366767026496613585711089958301822158685939127794592457527748318746486735265514754833956208559221749058303493706490474672833225163446354764452971515241882207817517068281316160526161671489518181409181836297664496447066295355231957607696925727511783552186757725400263769695238866962665133338192118258784391737645605409958161466878734978715834897998612064716276633229357318311780963394412976329766606821719232535810241826181663940866498823222391196531371534556797565692151017058043453191776890782075441587083253919147964759753549875051121827478022360984879919522996164608347653009786937653967027649966423539191604083988495583538023467519670187627513090637092651536444008876008184642797516439427376913027693919527532054542842861584322215184559686128320084507668702496100766654561061439595769098078008469241239317959874762624701031377305154273272709027824320931258645948399489668754961038953323281993654944597713413844846165444655252827774528333191473058976112137605581548795242744334204289678479511036503273164632469256726573948342770081588178674618834748232084676688761253972918512962474618613292163499438728285107786638316506096755558484474136247346753867675303467292357950712091783272340381745368999435049666447528394480758865816005983735073122098747259489328237979325756148126195000898039869377434108844982767679228025757380388174331166893003214800499867822624935691796596604560542027009786580043154954337159661738392904122372419986271142775275624475148407267410772687487325784664954711962517681892433657990893743177303407679084671560514922318576875432386705576702300995218526952296168939227316789914132126749846385405111459417920406895681811496799317420017427615783694375364662981157033397271031348358900421406963178494527137516556444840570969462461633578836229515370572009102720053797529910098284272496130777021635808398265753444697343369174591038497980570008045887381119173718101811377394272543363891011640640251568010499652808202026062655757000729825944287377949292614547397462680437863361944764836306055425005881328619910438045554602660542453373711365575495322405577444119417997427685584337976964338038562497185041211139154920825542663293091342278900839286032726131165716070908363893634312754489431418622114410398128628396358884678940597424190397797648706878096770375056932161659074047301937568864717387352920164579268345121255132548635511870490249120634185458710012027685223360777199938669034723904689271953863514385005061765517508984803834607686880793047825785170878682461059355629985686217485436638037223430660659338770310455209088936779893388566503461783063327947692393308026828500990646960922982357357206373141961575326667687373222561062154492599805707090245488602804285071026392708562053867127737303654994564447155479851729923200072074164464126989453496593328151802717289352842816745290831986230339159544124925937188168068864113631445671524596254029226199913211640269301227647246229152019472114812538560653621267450872017214698249113113534952248454282772613798804153663898293621683405228160627840864736754622579909677703363775423065734147036647821863285343680694702713776545280158451422935126482409283837208087414615556890827137288118431942053048033452590858834777322730400636892194989156294591500002245851219538482329196377151645512545386238089058871665038165028402338949814410264157274027256864641338017978141575839284990265452705799798371818630364814157516168730016276652906426547769005017308068762915674047124315750655037695082476454241743661991950474495322505686631191830772077521627918693749120293659239756243056518610964932348715613065320841297256588608181770588289812450638475139196702445278246442006768877342365397902971129417351824878976080405401208553429122954615960353909501452727406086016135175706574642838423558974606162629578795255991865961998472392499573718070808025816529002147269939377489738785620277654509111812572857360048533113141890566271030649299172737860572147534963565720916118801997659140065309377172157079243266495985977199105639044448750625822146456517433532188358925685978760050885171490737883373776102880200780128193499812083362738281608119955926478717841726812186149354063802713769277842637545813451095898789851879768719230222878122970076583467657757661606441259438732817738204551559237715643631982478390170788716147276242643323860481234037536917887589443395642309319679452675241205187001047142680503134843815664382543421179367774620298434606336939886123111561546760481922650657963154969724616200838490115765324884671118072401492068718177050246353295887885300056942687122318184913609096209287664644224518089841792761152524581748364961626665347885630310532748370814963019649109455830782181938210935976764132603727211605586729665634287017697630769905239147053284138043237913899652521735502847302369193458533156653326187997386199908533909670276098436770620008839013196631607761300115339970388542235108233978976612196334005070396253212351508580284246330948273088159273388180611112934820604061418630093140077843405305865976085915031206418765836294029182851237071495557922029080942010336221513242359461034215895050216418595122325931256512294625610768956653835038939237494981849080901872707853629246055844727696676694880029925706776252885183999517133898804990584183735913076134193800206902702846279445974829229119787562337870800028524345692238810188169919456434057845077957920141063388856150280829784743540569005419389960020881140503070297465190091648364196327293401780766447007942791137858189970494617559826421932524477319430551619763863805155533080694653990350743802369012494272549939373663985452112859147889216326334367866752820102672661446589496816428993021300320168756389852699187399608004859894078459015489025477463368538655865035796952171622409006124786169337659565009332905540465037281193139888076787593561816133686417236674663769577503690670206445281220386369581419582612606938783232104106812619096479993980400745474874425981276137219469584362960118530621150602974884157875198939003237841961359426704489645201721956502508037842188370560353568728365580662033451717819731615872672774875437256326749891841314764998598839566057096842987020920795462461442339115829987369421044768886030542955393730492662681315938038241202713036442816886357345100165834576217128007544008748661072326824328458866499092104715485826429451539052600965963307149799995004593118724586182109238234590476123162504677234687831794133457289442747687890589234857658426117872360038657748124515885772038169876448893370644670347440203279028876998730596969649184425352473477423521962872453848366721089111819049640175049772962964176660693153307716996029035076966187119628044893276975240585069593507063179086910475016326902086166121459002757780935779911417126316001579048641254490512837471025906642375599528955434560812273965701179106388674697213058006543571303806187142050835709349245880511435139882061448194125816786759788859068403135355478003706140670277447700666766783132526310550889790212937970509928775063963992144975248727266521342536327052167463635683153451179541696605084276558841993725772629738350134631757387993007331914239133115256539796407986686501437540585309242361433124856336566771802897198953036503096303647335511861859024040197054277600463254989268820728181286338071973639538265987895191521480146482717969547235143733601084261482191517886016775977540922578395079907065474712126371736772405965660148652377880836224158534330641350391175667869129076089270584023453908555879319985267092442341832531710061723042133595065433982837353471365011274032918234669139127736300570324976762853801677200989538063750422622776669764634758101829955082624560169076916379479401133529581587919504961650093657149625328563970202875635597693082329918656761717647935368825380838420059449075484862640798886523644605457892064596973983697983346811722903950776029010480930067010493058495487810741562309154723232411903315063334799062273589923134382061781061644314424421693383452452797633039894228848756185610191665633209112491241728850313254471868709029207667960046812181750282551342449321590353203015472091448447812281737185011233228080365567074447854637365557966592852511099517322490401566785069251026418610617299302229566780140558663177810704380658242939943815528676751473610545615531762819485313831151078338208221525930251319840171444979189951737093951235547000906600820759687477647616324809439889404395690798033198243754984092206315841829098083863507064293295168359370436424100467976671773944173734033140142081927382638187390588129454462175652347957851831824760946218841006081497795577631651497362218965437715096252476745791383706790252437349106099810326797850837686301628802313871802927818082084526582960028909042919419005967811951410513431014394437942784989567541326931581107471951208529125659207535898215483358922344767548543800158060671349084923602927494224010204310977828631939137652450091826982933437872827953649246114140402048808525904270940934511962674314012379510154834619068177020807128874342067140501907332319914689670214224257889699312403248959183312745141885017738631574141331625472429873477640127423363442523355822352476300440889809261878124578763337137812292528812521742031759056273926170210272254518074640656272593039316262071877061665205932387168301589255228972717730287870905781783709467943249407656508565022442365972994595580963335461608346603716403209651006022535691716126866917113262879297710266618720595318119020108747308652464477752154844637249683741729960036190928994913811890868610823157155105965114559243755384921844063560243346981108892580758549296408675453270664572617505530264214150845692052722155519557405600419140596508901876060514120803867796978288302910230314810549978998946260360202894215048593805975204436250534903551972030738259766974928275708846592160186010515069012610956098206186193518039782546880521464531546788653037739542336138859894680307999244138016568035372455143726251910764944853461797193851188919034740170296540710381535962888738601212567075525371757543714253342292207210639562135113795101029096893355652296040270700871888970439136289468373822108164562725581057905334607012686264898877494223559983623144448307861248958398284313491449052600029501646925759018562790516110937102045776690260469596949820767542567436848932498753006932340856083973045483579549156310810563017489346542594859274721670958783304456922334923449744242028587912927548269114450643610393227318885951399058529433851804534987374032572900857626560292197901445463499520390208653438255237646364941621861901501576407219699154838014727612130139048350456835642538585799266450394918566509698608659079416679282767375788069495233214193343847402208622360295466125573605978998683896994764966431528788809942446528976411619489866054399419930869107008498743338144101986839058003442077177735025340616731164519736588426039318814731658158605965628302873232794338511882393063670495233432891588692316266556608392182686361880928445287722984049044472499338802959146062101699088769942329944483242217415338013604311773334196639205017108604676580911112802480863793994681195785508041458026176751447019118865663491634236703166512591694513962786397711032043987166260327274303464701200281395058034695887804164946236388850008038011639830866207023772231689812587540216203297672931352631504575107156164742646096108800226584244143116047668461946785680897381600910689864146468173381679697229705309292765535828701012254998775173862207459219730756525822979111640493329537975138606521971388420707856129167771500362204360034527455022142115659478553268446845987029986410087549550852254888771885368563040129849412510223261637602186633672994950406873229712447704965651345992388462481285308488682949144928566710851705804230043483792718451093258066317804752113229595939094879553409853746473880044120775687931741541671440699905049754941016728147686289638033273469546870935267132682600222056434847410540641750903415247777311806384811518233370586705407911712457304352530905080547435714786366085433380900245920294350809903543003274951272117598664949311776028144112785388225020121111511460447978536556290415112452909913548008163650680415805628742197288112194242769588399485622676475755417946985653534045334586117776060678078616094308040843407182329816306128678381079089793157065530961720027462981271637747371352568831597297961991764048061657028082771137808312367515000314817428443522688151427832680834142073900945335661429607103747785027707595819680014300516143582278792247379112097730084348877684681190148016549278898786021662158989119174564893764199758163748681427214783815547925596073414205924304637351988457105902551470660547668147860454027413270756584935498211992754129726117507770766689327102861656069029124342666999968619284294805447544682344236154000523218902771224306961808443233505849273622208680100729619400926191111943187068335286773485511168863980311384103726764158435107774991151468258229841043030280152033034563211313702252748078914275878518865133164322684376803732962919493569197302727438961293100421410605643880194433329001129949271663560616043823193837442358643337859260150838302352887714258622835708353108751586645982104042116176894826394465202308017199327616660534565468235147270187154377694594292276522733597457614773531606578350934928686217012111358187562317223200231400639010484720432491251034033742816962686966684313490839170354706465528541156377586640913256042566603830568900784086330853992584232982887875408138538105023629789407865428532306009055679636499733204610141223725568654842857197484221960228711428041078506912715007869931965243799866622282414714981361203918086760245402006671203935053027374936798688951315005906831087315759585254792404934847395672919461585083697112574047203334145799426741028606522131323765943565059024174693630745224813878824850367899140632868447710758611017904365417530735109498112736252592798326853163069863947528159091210780410816076108207030018002428472896901613980721399052963976708224240057027448637421950460509140944245754623294193184856317300842566807188152106772020420945378910575400197019503201452311444481270780972639528948540996397811079152604566483733726146477289316990178877244763048334534070345852697177770848419601289686365355894442742697044960663504372151175939001001281080288991040350049449871394108850387481443428691431861246129417097248635847798797930532905319088255458267028874181088704129222147099696499590696709595321921909355678490713406834032390821415666889107009852928476845572685542184413086045100242637748913536771125526699768373242846071798170007415277069774484604192760780029737995784907711313955190685534763841600551314995098080458107335182856948929208060157648059009148356337988370728639045819814848041114896281831721855652028929763626174079328626894781923108382070270843115997112816776098715618770256585081338867934206481766639914700603437464680135645723916488125176399975794764728137253631263443590646827767358074698131444122036258185134786562936956942327474044980384471573656246823475914737295857082844869971377697251750552294876407908516238742793942284136765876791557524518039014227645204926083673483661328660074024143723835794260128014538184965752305231528941676367859734886872448864511115413705032295749295068213157364460172176443531173217958387963526106865939205672110098175984848773600426551912120343480542731514593614191103183675433732958418545441343288667052072351611777035299318965407546221574281618419231983853107410139968158964234062887985538396570352246420885035299265120916180058170212853939712986394419669056708873724222528549534406431331084621398635246927536431157261346753901841913760699479480232597059887279214755168966638368522413823421993989231975552913757228787181192799074441567093518816651152507860451908089531412819555473914636856432789101474112707946067178346307417941051156046641100575995682526878340557014591609965784293454754627264606514743360034791203982787628845756814278810959220764485372363433847506192144803641994590281689705137411205306593253328104967461254783834049149169355732284733704075427972170200317778283398722472382541780034524283034287931329136162955685620785674636580198644144750413644884922522282780840382043114991897198134364101659991111266537631992316026545411842678587766492588388351699602163493688420710647625674205620050866955685854178885374198958476896362317149848881156628078956483181411279781955002586539381385126922552461223999783319308121299447576176788006481344046959743258255368633657317616520373794584961217694689199148166648704114636404224970606713057966202527688146599764777702897985959412243213694997085134185160369032616276295187138215377689272804725346504452937573707536117798380785757287011645198138461143670925238075471430928176716358819257924195954439120349562998777069994006645755065594054333312746160525224737154051325074646719867623497228947638445341596491407377179999759043003042427903466803843112410446956038845746795088783321925034428338975361845245592821747047253589808630647798248710480014171273247910667121298032295386804758854880243217490895522125575107049387873568918084564575077528224344814848622794697576588690369155278357962606255363018232438910257998711242882414606507681578029503478755365934103076786764534927084546978296031777661312719516656875063770379070726211220380137849606730659505583083274516855450134180836650295987922902623171960437935197613206120539694094301939521456463803058226336007197948123031936092904577874155850634594288635099904892306676337357876605895464046049362775657686901866965605810391134334506233104309859227820490585518529002172998580718700114407775090979796002031171806685049842632598024584597322450153428053760706101609679999618031688657063317954438604272712570373558517750658440381358621164051072231861758081700654831466009914954217343638172126396977115997046827840338255221713397670597445504975592407297716951347620643282943000851569465590550868994689575637569141961618374165136105490018754459497954793478559632757866374253471897928663054993862953429533755212905705315515758878040393754476617254820917762746308030104537332547628563672650270067340517402932963707840403243370219808758902767983579710581153467831577182444125679255431635801797142696683897677709575248581663197246496212607451464278548277326705133344191591286317761556292042297729299430916330932489006062316383744837193850121686650720286997010592108290428629634480762159482080238149385775935884229157120004426467880539613897430678071615318291437561501249956327300543829399494380384256409811775182363923288938451734862028872467171802548036825221669514362054607992349017190725355296530839079745177405152843105168758867214518075425929524944248025544771526341593150528066472567077452093420364075758347559931989303922996238551065412082427005757454923021701981681483208994320625135237590099869273431725305756993447013466234546381954408562286420692924098502279437471071515394783985357971258731551571310134415179146936674840397557104959665359958987376326892136689466833080424139069690105294841291451121939125088895772632550618978175216255935085366781188852588682946698924714313757566808102471419810064844966111666655687537048464010208670593638868089636865009801311654113895963006855384359254720247648183296271756592712986740771139671326772554496621549730787433555005608283829477045975243401561303694332967205096594465803551780180375341826692924713022016543247608378208812928548091841561960345426679392147827635585574181948497329490874664217074016243843733288091387280202833413468586407158019366570982481708212681722647122099412219263640566263689609956111652530256902815140784777284917930573016510911224889589670976351546067286807472034190149749151155562958856558412010622029664823450188759888833396015391591267578362573077607838104397541049227116804361738569386475754367958444353053152428960911689149758969659349970352288735858052988533880304001855868979626612823971121369404535750580093577898469655124398322485147308566034191637685545358485272550637284363111734319191033405638878453205727375074953100301736883635874961752196095171058084058605803771380808495399931334591125130546228189149967720494695018089496213116232888629398389132435374622465551398321941079763479709819280847790451900343006342154375975084326546263683609767166574204420573586664467119260774170360480754547601046225223014197054582918953508079333408316264931103306608556436520190899802143838845912220973253014684158103024830638615843525285605522806836035990985558590462439646277003265218805178226058549897086298952600746172390644810895016382297291868524380189887449642128933113471597495565361682335758718894356112690332851006418618355846761043683880882946169624275920099985576093233385094215790717919306361552989641628880104344538852619183924135190757285580163010719298348640557850958827074711558030292674832572151347988156170369145643377355608451883478380141799824948939232739542393561444611133372704418136050416383564123267004230473026322738690740510701655947545291141735644460452648781306823111068949141629308791599497214528432328596008434531525301420736355818917729858580091712961924961355394691089464426990697376744127095101561212339942966847280983913637042966409409624396498687404988225551055335519204244613631515828769866022497358270016892517899689791761117701117115480668540705196320953510436954582548859645598269899361291962077537811125748101764424593812843545309216885989605829859776900128104982673708466369451002844776221905511968556674573222095842395580382185580978648138134583630752906226175683923585826525466474080151869661098252646903712459183658720623509896060940985639112740665705400468873257188793982588097609105044799428945544883213530483750221579227949423717551654908674583873784838952040371878174870980102324294107614623409767013204599550552248622571099116638600347566258735197723092230929132590333572436062735253316430356216467450465702138489052476864375935999973364669283406652501013393426980552646342693874718247881055828933414205949821584967718608915872839669175755213371594671322208128114228863268470974023580729746778688675830677398000304033542267172964795497898633527100285695856411679558211009340761838996990160196201168151277010508043247427746324651326552864503031803012669935071429065455709074036880992674325641525560164867129734700198950229037105593056403688722372256504980121665906126666103565581941741080308061282155166741145150610077891645088709484727812148629742220529778446110970289526263440495692763363296897357435699607149790607860262305667158497622983773083451726047680694791334530135488620682536096589972304706328253671963779947949852155287848456992236917839313357355450016213886246898490024525721460444095517023054480340808564472280299713140874973315067524614092727671363314210753579078579899358046505497556734612745266630884400974606880880358705917047666641184695739354573300080439798226708718715801237710422233520620526075014369302836629315892225592226829698084683231225481650499508897222363622110170653539283059566215874447985405924889199709808831743017024874726833719552906205933278393166155054871335003016854592539138451052372609251369273458586509755140081557180423799786576619265761009877301160994476720918631228320701515618261787082526441382190428423340588494862702837165024271154763520862799982967469318379331315187623906075550373930480233536269554420141540849905093706865627165194468245622288353780947181258680068270253584342663303059410824968224614611450976250863238826069273061537536354544430182114314184011261079620577251734374644808861222700292005094970658550572174267117842735911059697348767652151523831946322014263991481901773700515278857436890360653944715628942347756428081683611770407978521043839727984809944599044800394368856361476760941198167782405038718970800078920200974773391079273286437951163988075493146837041989716789825353719677258238706517005095327183062403189209358386103299959631891624016828152141995563596112738437515230954832407598054256416503678229217468988009166133353562364434796144290362257289549949297463380242721914119153749140481989509324214903650743077420937078872721592727610890641313127032078669071779223678732887651637400046113168768703332038083161471417403927409123809054360589931271877827458726411718781812035959618567585221539780978913478941750867677770162968918583898372788952405168478371618897503014478793338633469324623366260948672573440074948631199917703121619318897424204139462245517805243801040359086009860005361700103510941471225643775393658908602186521220556913921766487522478613115438736612702653182573643931474145205041836107467244564027846840811394203374165014791993764266205728394525514479478053475128206272997965780618345798860228926515821399348308176052238348741017890942927945442745340568855784648413735049721624802905245579646883247280956150409534804540596877402581297575024671159939123288040265568472624439705439755302291210883939035386302256148886564061844191960746564436524331773259966760140299875348400833162950147134364005149103093843137943606846247480479982926912195976669900715215423099589328158660130633665081923164471450214025149514616973031816597184685750553707141082171500397313108131439414205431096568164370912401282408909451575721412183145996288006632323542122099070934782935099873345438977509918164043668017325378413827617452821109666886724220734363005133306818054970663523519604655412483994039956096441941119484317675091020465264295691868814738541013909972985426250068480438643948629991268379019295044577716251484365521561998453641057385911082192796133824533541674690639720988092273811988930926172545194902983252484943347378378296469195692855721750490958980484957200730838240821275361030071477014228537163738785158437500924345538128315741848703218374273914474610789238323114514347370945563450503307132501175941681227466983189913599268323450334204853908448001470583841445532719387316980832472762885751625229778657286644851993695646060333277489108625885933590344367702278670436319175407683917463263507898977885002477666618176437724488443784085975406588497282440930969949434264852656897540880519779740537273769109775261296546109508233712960941762735228623382019903890181452798222303115633530517991594663468969027219712930029239911163454235011284292459821259013818553694135664782501829774202763039723707730546469264252833239256389381054043132241965439762220849054960482758921716338033238010778959954867768748018682056521164615964871837124061741734153291924829456015660435399044475165808460163632876507345025461273016472200400329796823374493885554938715724908773297502570563165916997840076281181300652244589079590347661520597661121672920152797751376573144285027797072004566095710967369993929654936241908771508650899383289056260517682959620522987485645322834504104483331897076613348813719506237287943578899953879631610811495881607277401870361799733292527977956840693094886311445098483981386143749531188409362354479362489734650834379221028079365943143745167453234678235760270431835918303537603578542093082326378131054727446801849423350795269155240964434994710265063688398771354525005537263793232843926717066304666899038074316791029404333847840315213872061468451549604067912952524981109079844954779783728029288139518513674133250810301544941211216068648978887455106888949435821885117696673363117972402892439670822369372967764504507173776258680241330243146159766398604838857102211123393248589648703757430203030952061681379727729919747324778097429172191230526322618780479848547961763152121817835706569905190998016810944368552593809539208318745601406635780451347006699412397209867930912465916560705058815844408495066019845067350503457544591721275991865916657030184525282423170452145520046545630611899692673993744066799529818334306370184427210157145119570129612790997466044777537452787107381391926405569050155109339797057859667189857330846145072313992673832787022400999752421048314904662133534340689716596545414591280364531023680403238025744488984883675055601000958668876920064416987781760888191624623065694527254982223401221873474486675301538331595612643723283809805875444555510777015520607349790473452588661173256799173706687641086903070237660816383326995808685379701144175353914321928505717004220448044031358254886079958720887457035993347220281456115431503339467673300609625295063427722706409960336845821932033280624092410926514015262358281301960210171563927705520683395980377886845663045479545542376063947172543510160765742569836356103965916013583070637836298008953965571845817672634878372646141749585477241479920161922891040803737603832511191336386904263796765970667542402011818749063615925461806300967026365359025149146714434750429642359255068109029018184456120784318130621812240082925408353468847350928803257213800967151704398823329861761786007464071311668864280609517285024897902646096213121333165451685235941215679797992632194352646450090490485197978693014899308396755612730425602720030078590933034688047712211109965107625130791269708966651198565774126932702215912221105956924540678135901624495100366434316651526502649366147818889043607439941146238715769204882318692376300789882588615072964332316581317100567658615315837328118084987813527304903708683559470443740634458154031305247356454968184866934991972732179623049766388014692539720745999585570469836217981119985385243292947474397655548013299284195760531274651491202806063173294053146190650800758683567715686165516333765311357881205559993678056666454087303866015485521523737128603291457712716579091889749375264740460474999166766448627252438131674448356094038299199239078775234152457439011874705124799617693236613557687570402162171700164587113629647408856859829380338122836701642040209942650190007839324817088137201563552656495797651467430364437252422510027877181565088752349328889048706029046675764564386613235012909598339375182063584275737611546968632757682099382465985543902303385730173078234074634319729903066095711456820231330844334978005915790183028798068645347482696996668394964888269298060326013185186894074527438256623779888948928688893901693916720440239159195688490803973242981882390561418538599928045993911463874748195589205284824432154885657812649702712152012319788389737432813113535340290771724881229724668914175192324093250325102312165601183286546994836491548659650554581880495476941836744228178717713316492124068753844878269975173029636520554379819725793298595184729927878922273431714902226258519087920094364454093086007789533043276437604003134230629112951164855494201914982506401889541334854033565863853783528278912986945798555714894794226434629728388599724366944397467666893363101711759384732029980282025797000500103942785391237774311423826608015121096740235836949200052416479254738805115642020368591528412437649813850343084040356525350394437951140657069866048613492889257150691202894874029161638650309791023838348639928535330482565716329459149076890916520761699405905176979417897169707000082503194750989719058583269695329894739191813128628278989632107289260812015741359938889619624778987867862615242468250773174977812533098765903437300266007588328922709228050081942145080059758555890512559392897150058815461334355822865770803100166670531659019363681963679947040016846310947012123553166093364603098369435079170967433963730183314884241316555070971487775166567715975231309375846654712355746969802601210782679936189502732046560495044984675994439941235866411595156881987872321351342348620565972551069402920421935671193276807690329588557247303060792364727880340876109302989839947212069920994167539588715596200355846319317719901948976290822111557555374251031300615600512917145905155536597694717267425548076293046433536275311944741276673730557940700798077955361745425682179243763398468937187727202865869445999514539102495527039165896349566679553648293598052404878534320813711265463886982584212068598344405101620611959077564571105516812881064421758359325873123973145216759433452260307666048337356854368510136852426992768719624172237366986078417706267081221659614932778365980340914151215887387260656375907644343271307324408016238137226054085986431463065160054743221528241357055288316818873031153919436959174938365549131500035983991683477287830601363670620033197189317216908165554714600917215381176405502131566313538477813361569410954279343103984896963525121684976293272607074104849227789906469442955771670505416852838927311088056739693791800983239323996147524336516613470279103345701871819142762814780980939116995301212697916142842202240455899213696498734389886635397342451961850649421239267805727149312283262179275669799463245049928648671161888065550993341139341287431946651325411847897908558548694693018067260907816164396127718816091580976027557374920230400435325577129656895699099178464056142318713384423165531044216997170308142677982823549549857496773457648102599806393164797219663299832393018707262430593165940942191723390180144221929810508939929304013346255711502269181346057044125000849661988476318549111864969295224463211179776805094760708489572939001926066020442978437194606212696173599231971583033643115984025453537727244059408090986682693748754990101320349893993279750969499020646137659509739197317673597120811780094337428425575920238758004086534489901737792759717394076169689816276992264517979156519283646659475884842528805591892651947416135202720651416840113053333117921253737715591863661772174431315790240399310567185314167049076540907589296506299712472619747434801495298230496639894751007575338034331615985936092967708521489568547752289510530739198672088296989422258968638620854716423521841589807574793094923560470029405835662867071809518182069257813072925943265703138583768305595601286221653138779435775740401880168561220341259656322899534530356968304636054079131045627146853029214980639548556031697691623628388618531026790948890454072197076659730230856134015561246847886504107534592190901140536758086282730079588811694125620583788988407012622382526339370807586323688519492229094070145160455884587018041234681763258303708016724492054887339204391973303414387395817343201987843289566958837920286342420286576054332730503535156875347651357755356812699197053205832154286212983539799368301626587604645091309398823404480008794455959306125262722074467147653983452886370338693250622639279178676869956324887848453361056939277272088711459040855158506335797070160802687149696881055196823257739617774553988023746985969230821572467506234531727172804675167354760128400394115040897138243524276014815560395406865689519037969683393995568114110016734637589487531715857600809526075395623793471375172378171259460081838296100670522087735205452550052608727468156187911799960041431776547440349163270003757070965896647476704868563272919573684547121602319053099816529792343827887839606691840417028515237063410815640238762326676939839102608227636885564955806610663779136422204029790719012507067179171256417103543526467178842183892827166350790473040477226937942180912411435917749787069050704497108029860536331204833103793722004667535238451789155817644112174473354080742276193954781986117153099808396957968604829609805874210808476796933608900907787882055614183758507412459780616017702887905391367267916786055483651033966842547841709160151632151025542376396479741219109443593304992290017695204424607856745738367473459865549727536560258265182415554715422474500443900446586056206644565694666769569899739413748403427705188077959438579648368737530940134054809969888935891808218896316366052334735314315609503797649245617897889829835056594853360739151527721262595733249677379271156048771534520018186767455497178146616596633270019985937285123726867040468040965687733258148364698005561546126291990737160009651675147350554653618688083367990377488774662417637157526591499649724895956415794960561261362112143998953377480352964470964924379136295714068134524229262283397049500108744000390267768002382744585188585070711875404733852756268361120764767024186148614625188287350467772724734397779401931679548263420357670869986131827615192422889924021701343466388727970010604476844360038079723532717683485554280982304153370362120607908352600774129960403136620875924682244489231990231657235834760827119164587556087215632738365089453038283482134319866494325806076561957972419218396580521019853325491776607488933531912718157954566714398973285823935179864093013680907591840798577406225823544543504491705727098914289157841825646153652658673622487558990449088896754355221303191159124572064945299768830443792882133328182733127528973285912460091334400596551476644749626088354743827890389111507716895013997988308443165480319057617070222431534147521647777900388080293150764579401069661010868675393960961904330985260426407001300918018106902713727200080857040398420969023844320314967848135555573800937992188826099688994923892690865370815180875712230141509322811346035076254302205779474488174832512406197096714185216137785911045109352305637004610971388573458476330345740450116756598707922797489072999721285616676786120608512482232191877755625417644606145411075604111000117870923542751171144838122572321286392451329198797234171990379005275335027363552512714008649706735809268555457253153902570289271812460597067732065616555484164588205605336701786186355231282860929587130926375964426332182554704507064097714691493181380952612892392128598574995938676451936697638222195668057231085744293198801175489010884357991253619351090953194635001742074523314609369264281298884706869972387570019134463566425187376517769306349142274411758912281378237287335484928891910249851763799629593033236778494574211622138203132847730790796262255678783336877448123235439971723010125171700420119215350602278193223090080857804878224373414132692602978535722560319085621215843844767285870269821874021022198785196892984860817562075663148309027673228760434661070382002367252605225166490148210443440274222088831970336938784038471257721928834134100484273489351007429570220382720050395507271149073854321055957130109643201901004954936797713465104529747940015173090977559513702516149004629402230386222587137602652439855668651330206379849372296539232457531973740026871062917121091174016162846572325416547738860963878973845360540856281788960911538927579394763694491515295409725826067341665445966902090524235174869005653215922055792728223943085272836913988366897699920886445045207490876487806679278882880326241743153070412431293494017100486860973907095864764637860201841037445655998909728767331315948959713224963743386559766474110786597187583643880843050263136153212684404052769601570606226429014483690347569525846940337207796995884898846210229819549123763771698052892601345845299188788089902820538772607648389708443737214348712081352231336354727141214817118416222908004548204899869650684719048001874028547003277167128497009511804972288757025146643899004829541114152271604198020124459832312565269329731018599981921397808171536194770561576253590074639248036978418906043369062778599335259913447969708668010018388250420635658410349764903133845040574933410072895689139037061937715211017500501905722382248794816660775094749639984909283006880056639505020420335979385821138412348334279972155816580127393489890714829199597569447557609280090653129245082781499906271851455624521357135918106955874495118356149247788013439698190787489252271955976573139475310121813150996601664215768497023087397295971271924566331830770323552051448508472354220607792912754899541663951062623299481061741813532591478209288967399060644534204859087337554214636600676270861812239239399563258467427984901163402232597023530783551126974779352681987874021044283935940720594412408700969203576981759799027964656462960504828674904684002953758810729131216602134559357661994759898828317812265737203013508717748974660316862622591543506350778275285979516415576047959421057099498886181329906490964087753477005715552827930773208742194933459634116214625933163760233875423992494244445324734400364660395212481145145995255360361703114409137824105282355876226441905774707155619283322670414768906189163987429284365300639148080654837482231959356316596885198188157768680278875344293958614084205453207665239202975527669139684497333769248948497941190359146994012293106218294119099366271089425998611910621843740005200979588416158574394855188132875842861005211413508741006522608942932524016233287160086965714415087026479149477585326902808504046679444863846519457919634535439417605538004823847132440969478723174269097700172458161154097065358157356460645092207003980733087424415143490067013205406528660938250968301064000629730200528208216862489064625251183791821245424713592081069369785646551875655638055901695890646951612358554510947522326942114008211821645006516374430689694342728680969487173201214595187007338575721073472478073238166820218179432026052704384318338731538223060959968764182406758600657134051953599782321134654683896630241905817574967634546539095100873356226252326361116954987310912192074901542471555854768976768322761987674004360516112805155962341599888380508816180933332571581430249498204851670334181886569437637127699774514271624574891917520128821420682651632356889384210347027297682354463380065679459498853475100234809145725577048097475298362559777066760020297771529668385778382175343846403989398711220210600930324263360351167862040311864027196724295625199348122626516847933371690282446706809549901443712402039512789574703686502916497440478894943606145243662762125002205344114080431584631574778022804485984160944304944641948477242361735641447886846737341658279589372478460941913411330788918513363043524901351184697444197852949424143821322274525737276609005702958949597390637285201420032852170239321945521827634510859205100891618923664482456778253450761981001506498577187494312124648948679251738132854091991999194233812795921768698260501345675851105794608374466205572684206898354698569410702016318981875732904881737422846938125096044632451667235221349250630431962125544640043624657409840746575566988615525950775441406302036547642519711971660265241302240771681328964173891543441298875496850874233077472876857998060996224524213257872975550434409840463322371852213131045073183827590550538960664822306581849903180067521848602070801126360324491771281266663335083643607484069752702704600830340954294419597124669283741053160112931545216535238817954448471943917133581167221525118347050031202135897786146746362808869824375996963154492535352282026492120660786420524612059524764996720338787504524680305223778380933076438726527756050058470522013159059323130709166316558508411349772801001063770997708083041740510921167325375895441266484180937709817152510777738107601944814947518480792573445430756259448449377894627170682489093962890056779827048420634662247708508094912489668190785226361010083110082698002100328185692623872734486556462767197919607061946779524749846063845833269894858498937037473513705174351623660147629024834146159941024044062686795243875814445197834098205364628918080031237138299020446072160993002215637237688062490867975221818936227640630771603001584165735746548356582843357141469621816507433088463291526773664251614618246495832707656674136604447682700943102069178898449967639342601354806792208832366044465124327372176571824213958054961199815134602579703967447881820647727404732404687509625904608782100061067138055413842115870737903809213594830336998233737628707694350461659275137758745671891527672005992253151893144404139493009643772965272337176358846722809550768257045232571871576505134264208040557128545374392617101602799693415697592207156843590151408623426047255365861076989205844857394101247201745406691495500814386889638071205920792910629207061095517198110603482986926501981298710113514967546519146179839395815849437932759468025560933212181908399503805669260619509322796400171930070318331989657041142964754281070651941025027081427779661557644786287527441922972100785083815232916959834627196850537155498962793191489237806020137835510750052104024256297486759262164747724391851495411483842242223533977142673947230172041383617674761009585020628759895409992376665396820960701628971753148599906817468802932389252291852232464248537625815073230395916461868198267212392146984211152732874655637992313494211290203676085948048964379412602441418623938697840799770936084444722157691868363992757440074111355558752610807255522328697137695608095805749901221891446881224598026789508222202475049537439658062883249131433440489464078962226243533722981297592282957409748329129055400892725021852337713912369447497184432905950636012051746962880421011473247532170719512467871874870959201555910370865009186430953136092358439557284661545121059356361849716802269337119915598118285217975365507504849414579982788601191377762090576105111575939738911541757120066461692460882432782812871533754382729300673966001305248909165456797771327247557633168621087611461382447337320710873912187660256774771162945168570732369604258054752926361037839568704046304335129243487625442063538842528753138057953089048727007396935022096001226302915639514794411053276970193751814643279535128234471230582803664634945042877164610532459227488121340157635047443590156739297284466406410131322061785337910004310845834637691301743896651876559605445486186325921237102587302893075520170630571956835003949190927276507135671990378670826015296543844872821449193045855469676804093249464618730005829580430189376448596549196566451119751733340728326544867984116140454962809787822921036582588312675138847227612274895144118779878614455115213794137701910935362091281431152972801201880568603782891077937928934328740709148729363959226694719012239298950504740765691951624473213791037998108459431170041556542153560407706263301879318821242128024443041740868952687709028778574610717258419315701308863839748021319575379124938017784562888062188707556460727257163395760710235422735458077658432847681354764748968145280726695143720255695820630769198683094407368557695088548340122071260750099944139245514829755296907652974335183975597526547184479991613656706091739122265661236404595732727730712946614633539329683454734791166938240430862289603272201466618541133824208289464466013527259156717984103050378385863652554209393396487823918172230485808150922205516921236798563518584496166173358638192007728732766116944412955222441114613464392181893158894531171661550594150437287578825172649674752343457792980442470447808991826827359864799594921592296473236590670864823024093187850558382476788392404101302838800913391498077372414376853569315129164978680114193386627743172666635738078540917468361689164019018895060344314770568083442565808472630735329649457746646619470937775915039649566041798873787144576738889812433698169722944184881183440361918572176712534996185836549889850173319920801385638183552376984708761838576162044886829967763515613731851077584531242510724056068055969512818979424462399200887142608945343663592721783303070852888597870699970273812354187252631531968334281186816779636326611162695491917338826943612048689908684274264577891015099988841779979269436646748863288805436948668413443000880477464728246938507768959899538187109819250137274319699057395915664783756083591251806506925170272022919906668650028952970481777061465577327291710680286211800072159083894079171919526844706680474554776967718525318165687218585490745306138634014971684039070565593211437469386069428169760647819560038160293171561040127520817102818212013203548993323213146699787449519241834462017935320036188933024044061813329000672993927930988708393552066072520781960639265225202236292340857413899272655629489724501366541518744448212645955479309896773803985878290994702653537209269279074926699006245473728380073051645188900402192760738429230778010680778367515867237955159290644391864847488216933881703709389651576938196137499023586439160572622688108853861644668473324082533130064344755510030948235485404648733139751414849709998249739686009939123444995666503801761125593796697271882392519205808604954439327259836222830763971040883991251294014462166194681111267187774630574081383382276500443601866873059126672782569329918043915794176323239092431948279537763948191260751681642983882265672019238669400615260021103677691176092772895777391404900776866899801390354530099447373358917375062348262622421684503087923856164688568641118470467290595673576687123467792025972566561249262799524332629236957618707113203398118967064822072748646983102355117387402034523889477627662656224502268768887066248720126165114920110523008993256299822674015182268897960333196435038180771641579278202523095335283341673529291386269567454730464027870205849080080771674899309657305816450266457505943913914565198801474698912420276903389225465610761330789908917666996720031779060519485218844123984022543383528532910795058869900072046707629773050733075223988355684342967166184460244203245183471952888023603878280235878610126391383254411181028172903294411565527215453623600454989529413743988594952166003837901131363619538643242771176659580815080572942933752347247873381951167650615476350472444068287893584773390565617535582770095070855676750521042984734648207826391174359452692394550819926400699587837330686262692862139723601865989714720835234099070926798400168455251026907477597165271093484733575853680068716243217265745252462228105415848817549755464742627040814401405527435848643568538606669480673620553190211101945405628171885730226878698479616663209892586325065844315099422729276904438112271437543504022316771371363566093124238681315854062164038201937850906271436458250646272847734442063080501192150904428626703831857901928355966623510325785191603036993469493080485651382890132486731649735260466863945786974012301912508517219014200688039933326296608787307627251413143339855412658940326519445065856592263477153769514897769384477071985232220807684029476645558755239060905298759486557537112022123816764449489776550719462431112822865411789102798458257240028604523949105202021069323121025752622036508483787727128845159172774177536517165979191973954502377206684048780192982975311386576199254913099791596112958348611310463218795006666131596980036711132041641589719366035406139829813258228273378061376487635911650846292383483777388016925016736820262396509793783580435993931715008075790887528928543963805627014686569291848042199795084083940906647068831634930633291240955259116887367762888624920609363185720765774302233873643996276260679851365914462459849146383974770156438691268368089067040387101152207853727064009609712212831149983254148181406511129043995317271057000160163046310577016374654618246288530230657904714152125298905182066599587820624307809014883529410942240301994371408395321983173887232092442569854973549379069089748523307321894759300773684662891317167077908977892046633228759025729383690844478899616881120742999035697185056370623043678269679266426591361921597729715065802334370287129671110058857055772971951926812519029819208574269666862349690766639710407216613091180636883907433834729731852692812952032688538416446127577509596309425585277278774745429977327177391366517318376165030247004138856170396154620252222431178586981364547712454968278069946708748927314756985450108143263571110505925013247075105654168586297362163191097530260861154927071154855553597062968307389229047240099952599646265401488314831040029611940719380928917733467599462756720804096131714786555391586692064087962663121757147873087248490136388422120809575976899604519421733731868121079189633699900876993637275077348138826929023383521390177583315807291655011492259699226802047876154479017949740188568470798490063098659121041612694197594230091463214906972480528734120172431948634132359392253069684311157022745663250166853664021328859111830141417133179692893431579937238096613863716395016203512354237154866404952210474815078649029868502556124417602050472292272508522945944093719854751743978421319305916472270985177124196339450649130262507892814546379406767380903573814434541213713848518175614913539137116400601536929683044631143016892641640171684549662635761821486558342813818884068422636819937592413888770771226947306682567175131798015730283611671814449554725509700200520831316509288790067293769970348436981055396072933896328957992343419774405730021802516490792955409484218374906487894651364780709352484274841749837667633166174609039675268502368454358654193121320244638955541137632842766962155192410645489926480615152699156719101108661559109317851494678178852500859317791980537767746092230708152650420390999535537161935602575657649327680859784868994819826530099792990039474303467908792349631262700711305464224708099023507723729278165609284441315799480423792226293817828740823746800479116701872799901933572506862193677545997353259161902601658752391520039966003148991028618145845226149410433094163649205367234102921985255546838512694129665013757381041565798227116879659230370796122757461066819299139112529741983823326376246627288262060653288022025835180070693651672826188932061692622828968705174999592347435351664709768759670051564096089173616913970407730039893957800771974485527678630856022901198509435847150695724613842948500191956660943268141235286727825128471776313473404236334518003068305552663229867545639557704816678460391720810289938267120956064112449957377061266502718839403097983178593605734675995974203391962412624783839648014939178781404267918199498597944587853301504484042725125144039226596607054549744352052648031261827449292118718685206184696760747816037869974600576002619652407358344557876726869973308772891374322938845382636234149458171324749721041789939570647875405937011987551398646048747559559995349575051030171992218224634396646806573398354192812638433574555837601206652546410246284191816515546154679044628266988171091849263444058611515305688362206920916900441162775466725368728122168160836489384290669876756118811597393331564060576296554582773411608468988979081369419758401951937197474530096493037702250151998189806996698278536529798262505582967167795133442553045198782035880955615626848674732983191894699638637696975933373024719004021937038837048180577627804190935699750130555626285562511947780240517726772580666750912291906730883369921049589426692546737986688990949996939157690478964621291908468008121229607152154696365853738918866161838087526599925734720485478315683877047453185785936561598469100667380380249877553980105178066811733033067126494993387432703004665298180815162041233666002872767395548541306384288370755970156628642075735656379408636339275699867682797469747929142848460591933402594060366929108126602656463456565845598664539691518669079056295008248491339088642299068568009153162910804016811893604860720894563329873653095852123699226144850307603858129527503382736048035628692484964193583647131515750258069003550658981451330696824534965417405947410090848606608410407519511721236694705930702002448172186558571873987967879235223476768056734956384127514945077447486291673871229525518597135506485981861778885359525176301827079925977166250628045188317046934319024285955945129836683431386769047517211754486468558456869367379423209840296809853001922097347227521454017247382025619146740043574702858994845381680050119808897267734977669802535541332933581649277624311417167268486946969101322126412228080719545043471957617106661485324752414588589747497250932791944685521002515311240015079047540246849577454288015209403699929056528869511374333254085352950855455413560480328438670049171865271334938851540464325360902407265608465572902750528461917125206019886156733140920660755643484441759454580777231487490419003346290900344354128355748735613835561771493467363284724700210244431908938971570728869972145500195521040576568709417202545217495093408559653828257401234816784195024867344168201844467073066017602915003522203849690931086709346405934911643647702239748745466563311690539705820351384534277947124266221356876115815921405621988560547809880079153288388526748324355957643350467086402395702260129737345812590969521663420163909269594937454051868986900805368876556817114202272523563159545034934822724377979152847306012978889244212861190970776174584532040710111196339735860657990496398930902266599977982313990145027858977191253001568552253997154061174128357796476323596024478893268657488641998147416147350498729046238852294668806530158811328854786130549171537576824292008317180600718396586768296440866894060472520074892727575840219536420418170642534073575719727801373383058562761637271142494568095298577855732543965487838736376736903372627470334073378279815656085813280856624920298527062847855723167007439737277572679613280125088062102840153497517979460826367331773281342272526622344336432620900986062248569871715290307559309225461689103937751206129805950952833946474673281996997667891885300832370843371161755790541800802395340246979200963385908456553523349263314434803178900258546932692209145863412199826169158400891756651630486542671251394369484734124563240194237845843987801608126043649016542397036808562730785492078387313396146876829964556869198367446683728704368428446973186708340208685188495927244229932817413300493534813936651253772989350214203124030379379492860559806212276182616128703690401252233977403812230134113624240104631114391292950677862035814423399221800848488634206220351065924285065524738813774332751267969588026494800657832147974550875880334321821438105149408978097092440232209333853890723352226567413771895633379265466316487164218582373748878771288198429636934899490351276558706119282294356491765927141255184438373584630487614030250774148762654880506211492995233864705241114746705974793120675139825691506749522128322564428545218795271831389983668181081177218009508912310850027575836872283127176230827601960172840524085069615867717421533496985495844949432080529741208371868291214180808480518835286620060574564416484060709569209634506676764722009464215347451851859540223541004689542838084650644601632326723766477087589642746825480141669510780656682752010628378833735577559254785719488528229734384978911626703646793436860145338832943977182263194265004310004947452330314135595665130146839889181143391326376025302412891394099132678674429296804589020907850616312540324932707855617788212600228741456279794318175882484517654848669780364808410538032033424001375159429568225475321049329683188440279213506559727171542754080782260467626904413351349625177718032305683439399953961255312793627632701626730568859314693721401762767826237895939852742439855396218184181756207662719575125350977751108972818780228461576620364431735812031676924278026450781299621238436941253251689342881321564430830263600275255528023986379250144845126122098864997484686610013430810377712260485904259529713958443328391617462726061813970166739187942047129698958108607512558040104017554760961608352035751662395815746877072697197766103787445289588853297448679794335276750728926033032079945489756846498706671615398736578538128855968063065897937886441909281525082480924210428829937618778688643380440941604551823774089649862996200849076179650303825282007024853151764853876199757089923839826580358675783315770820705720834610246283146833432622568689340068840706530372974559069023207413057731441747752356100516381040781820445826250388343255255458438314274315107899980787252989652031746450048190930406304452718937871172810710766410047095145209542744402273854519263666885663086132376452213976824886839765605285958157645224223757060805574308093321023754522368834003598602365467626272741250095292713721859986402930344399656553499460872977173073164695466473504210970924530981197348590434409268661402272669631379092263266261366598086227294428146386890253137828233125402400230389296280986026745321629600365281293485872234550266064659184370260687368080626980005842018771797720735254055307909026198090603002359465798137377861361913267649209342810222948790431739220152555695783131192534756039976306957740187805180668331984553839279657634450677021106257457055901564653386083236303108995189763120632683969522956857172583763274569776372392648983641750200726576028676379258224264455967205968830544749079910067331535144898761981710079541896234197715908257156967615954204676844245518039268344659948598838204559259428300521317963026583096920992699488462821973663795606961968876037599155225083540994322036062247765185901926481212224426867415709950270711981193229258687121060787346050641836036425504392116742772681860327073598182622279067785440722676498473288581197412435117105369025528050948328525311998340627597436505382718143184450368700812550191980064733712607507912032908521375942388251658697594557910351623282807536556237679446875627072319418834136143733317603857293075267335172294338917052720698034871718155095388596274889174692100920433334312650204768903530511618416221882765547253993909673926889250776280744337750534449959625402350529797707963461440856946590765884877034122681936899100293949155691723337598257843993255156674269305914403855310506837581368973007442533856914705548495123460361268861704256031358185965794628476947426070190917017893758326804937907882158882781982971002229378219151009417521210813354698312279019812198898736746056198244917007486495573334907124900285757628119669756412516997190257407181506830534259066001827837610628722710892168662078873551361770457868825261663645282675308522773257403872596672217015797649411296002010826041338913160441888087519679552681097561663041252968780441246858067244971651559823484795603900491669990964805458039554346026948886053461143044197324111721200815348961912470297364499765476089343260929650512701709174108894456789828600891143907132313240491044073474016395415527019350166058482984319959371712928272398177463702570290302119497708240799180039991159883041178639000513415926847085272616490436143661106353798937328193058478222474249875086511520303049346456471367202882180208410645803697831723383826826599717062411930521656261173304901406336111380989623995416068221577531852714933170854480796689890267352128971344084237283486924518916663817620730548844729537617281886976233816175953694167155274660972427524388603428868856289941320578758400520345992039404395700989683538151186894393632466771079539048011701911028212151845852024410037468402591142181138558978113528092508495494264205516383323178169141376439245318696531972011186721484285820669834163867717413590813231787797916179536158999707783477232509424941507303835999312345440765146861458777094714833414417069170620107023616590666483266737105587840994660045286244763357491559262032677461828400915819949749259537687699871416485045758997524195542846573242462238078577002611563558514343479612853477343822866171204587705769496025550965603693648745687315519906472323764438946392124965268333722855272842983678106175054612759577918341431752282600668137455842777658087116259461191734663801096171271375820814211714653599459702020752407537757342706095816638970613011026424128947982990294507162352355663830993791666124318609369882081818774051802059703072458534908938021342487226981681282986439567940626462674657518440258961821756606301913764969830318103734865534973946171244398086248223724318692275797280475072418178170023442082070167884430937058727594834431625624170459161393232801654589725074263189605397042576943822550812018096573600353093484728989130060107218483753304461199049160955468218276948160796624537787444015041639169500151983684900406345816133884657903991425534042546957113481197819124980535647905609887802271700514639094294295713461127161519151034286604512163305139002396056228510178948043252139995066798210876631152028086990597354428109140096884608999445536498659772081411062134851202994706623831907224237176072730176925370160215758702884127181953495172814316623676505116644671441721056895384472457884922926081776110627599489061217011396653429819647623961551552601083515829269004267206213709682835695171448916834582731423229983680523705797283875020065112535490792045351409409979065093997902185935946495638126942809738576799473508150528271422762988088218642053116805536877764034431437553268533440153591086154208473371447183437791049454584419150637419799758752763309872980688290078235367556482414440053655151271836544578359122503873018006758933189911474098645047306009846602491330179283362883198262544421637988818108768419057704581890036091065400478494233678232589162162420181776848234144213105845443308693232313271011747788672748589716973588376816318609408150252748242802217921086652666609142208409140842135895529571367478620106788998552542846502506107446231170817113352945849371325666445778730897946303302048617279478667114764052777567654178431496619708519820134610587303401753334372669276277538027025139777315235540553149181298596453304884225468024013341322016773640596904683188137476098195281929816985020072902815343519158707957963067661566574087137929487493147229110322219095474471344585589663863922960065669042881527771551701098822104802375333325855996176060388909929290777462662977663961901911856410755478558206812727164904312873406045076613081039276069109561266135021580441919748873515319252603793624649937500426886127237712333754221735832637306151752198718282198598230896524067658222407297546621136371878752618705370867589857442668708880719454550734415483911814282556463851877324376973416728377525265571268284717939178018598588699236277205252055853154630249337121370972414399836464687609337743917364301088715064347532442981664634794869563682578468255816175995469718916323397813464931202545790644109407880849771942442901657212190834981955217622792612797943395222707615443185826901878596349360709754173679607350184723153197588216866178243031115284644365213474508733602094918141957182725444772779944727430544873197072759878050315181525869076584667999549878657656199055236694442997568137776646440102029196181715671172538154407565756332627558454884001941306780579525577932837753608488887615624272359834430399599933624758203657799455062916575437578986032671176480216541972504027215640482242802142866572443383847396520666561774133484305927851640220440693192232526198591487163452242843793663818463675382903384324004687201905125596155363111722044804968052396937661137724889838713865279175318860066883293624374758982058098895742676788698985212664558992370835080821506485626102457772619416836133968407826668165206389032155788534569545426554808257200227514040111208938610349633391905489090843812118663358336233825048720337759288433566125362656135123491046179199151407789604576307825503616690450190504983933270472139270610731798056539227048305091521169930224359521850358770745737886791046780076398295744571084389569096030096521384117954859504553697148595303128085705717309482374766374166186020452507785343299824850756737510274125422434785627005250496773853619965562366160960027708282317508845227107198595029258492937131077440090660822004987694260073878324550923453429992665671945238502034284415462944681082651653743330120243971390163085450945911785160414735249619360279657271108819014475670074387779278274161582970681640746835462318061867980978092821036558594035078105575072128411272679691839141678633413152532731354444952574612681249962957865703525705434398023963725496297549327736332151515331450511979574381446111903049776297646847118991838790116436209981253071340882636843430727130583004405912383969911744442258430218518676177571178167370146809755095646880802561951679711308947598238296208546186710269189906327595582560008760645751908184692419016224329104495354448214422177929528027985882602267630027920288518121692449143242823093217271205954396804549719594843651791424684127933044265491349435647355828177250343566398526489612528317883230041276338672866294899344519237073710206869574222815198289814773875921229687394992377051396230941084247909142842888032195548480920288378710041988133556400070714245134379236481633902713421556396913902088561862499112015169159370743506366062608615684281744871100710540791240986294917088029426623352929150693652156194608801548763056561962089021492078778757314831825826294082603181172304965048889259872241398822286657586925651633690934208353699679515910776012504898772160972120361305947246762996708169598387998646018162892065108764763922955624749793744436556168572199972909714912833214711321316393333025459921195875763785241091785267649965553987418978078788677601900420596488331494289438680954301914305711151375749336003874945014294232039807142981729629798606717340250338833472864727374108989292250527597500397749280306149458575005964033396052462180793919690380656172773691165363925005611052394904795752760348499755152249334431804838787338368027087732575423216992797400565710759244173886584439774548607498919071759316145476739211042666901319594176327013289834806523105778313384683198789310015904205970671144932499887204541711055527726974069613587420717977986476476449174521623395679102014819619669031910382678271104337971977954486633798683708139394766381753791186122908601214629337172432591236602885170804139092089404501875108451486838060334369213978008522435249591543510765294554951631913034070289057623235371083548535334536326598836676720229293241643096289009522215624010355559042658717350014003860453748959073511416119929361586441591739807904603316921384429190889822179086471199858767983957618710804177734484460929520470654887073258240944418887055850257772927735843387765251595012937488392391496062879327075904227602588927310794550181048270433448966680017191282276747827709581069575259996533508563023463000390347085527923333316393791056297121330312819787429549844106298915540099660487116717392863603404164957259517570490913105131656967415601271349697147774986795689942258910742637242555343146273126532673370225138064678266230460439425475125137460299769780335770654742680323200463778660765284178871038415683991167584815768186684687667500593507054479660073946453420637551633014453679532175483611109280458363033853597653877289214384942213662821284209218402938347871538696729675496256414259149868088996492882517625488415252756408727966279273501709081799174088047754715997597480219974077044988470174044746930803104236124194229978606670661841491962757117330404370692048611648037392513689933019289691491946130585191038551868773350012028422268320954307083804565502833266885211298744478437831798339117121439715441821141943108813945506726147748872158123296465940710680475046887751092839884883571654042530481438402914565480643239662611132124514403387351571906492936949926786184687051543747714524613033910528144132792419549350109176360134972969027122821811914357264178618015689481033500432200443027681836025142160928083222186815609943355409772686591911218831804083773159490214270455280827744537646250956298340226245581635227710906964723342708461722129275835901594978247239777621608527929508574038065997028162257055852922924340995604661291924897316244818161201682702549499816706912453333000646346150155134602906191210259048090112230380166741605589053656897884940000231376885833147535414691261584614607216943501699926734802570741502036350775473066558039343320263658109678718201621009587848933865810047311213411576945095139266635886688093122024473692873807375951829861909412117144687284613227089192621751856042610595831473506336406813114218290219107334358846927143908076785718699340607370012977451479184169808441163942914911824995007519008781380652456589822897968902947671615030784117048522346464621381160527128803813395542075698520802135781025257409288631664410675557197596239852086674303142378273361838358917668707751599575348781936589178651334856892711559252905257911301271400381221784582466230633923601674335996352548104546526964441552800575716227889790180411874694028233179178725389612735123863699114403736276668925049044452796785821880661961818612243268960787142828289546637160783030470568727295444616223807134135633975541320035815856069391718783326427758133347042615551384252827413140146893095193751915126871694822327906009888524401347864219060376553769535683419271127697974509006899745210555832093888256160247131694649697690335892620056476527599371644431994328137654046806544007421057531700624828094879447461100969001822330020186694516987810107454914452484578652752694215754899310530870909188631091075053507164191382870656243095079605931529547134101684688748849670406587772120514719471073780807375806232099824538204682013731077002856854407986751997337527304538016954593005976311845662263967426027535721063608550057847145800408895968402324383319542418054566520995809375919055826538035174766151446208416130044689213108503154794246213412096004935489250578630215375525004010304960059861726601887655083927861744917251282838262131555280471932248774539829655201058821053589795940978314877548746448953507676376321122151132202339578545509552576452554372367492891437877894123353942035891152262644641162587897453306622142842101486249542588483285561414794681078019119292880374553461811487862817701677992858743995250165542487219169937313466294555987450951734049062745608188247373608029732967276902993709775815828150034178541812387850258033222279332387416488949498367327012117650321526215751314415871773039402242662845155482398594799872743393653228844636772022536643197456095197636073723439231234856470788673094475926519736889917036573760505300671911884989106207509479467158341809991256022115913965255143630621108235981350887322152301120283035631309412862867333997707236829099572443251709413677888459882803492800513318949394182109087891798590387388311855652650593791079112945931423099289672275272054763068767091362330795201005807442737829365509112014343911301490001557990520474693808054688162627480064125534064425700186486566051618321325226158421174934481822115678017655759673527424010923127600195958558716500039484542961416810707697410031343704012784897413917308397280302921104610265994667336329515007667152426774272388439195783161253874799789014643087252359409641046651964327469666455101766009788890137702025114674090697720708851514727160044207333006724650882341646699833752894474511813107827664440831319731058988916847924179142405733884573152498140293968231915070725617092637655043039492826089599377989869633040218622067932497624175564045511300964706454968483216946780897199794380808925493487660481410675261837285100264383362481101512296678055361908275560984549493241322707025828985967789924701254154976422240011228416017795465947504989244670407593182439974047677892025861025949893412883190542570629378046401505784722189515474066082020966377215663808937135383265136769719709085947886861525878037929562496862660225794476808500018258646347163313665969461353022304613645019522064291258867778709903825209094353793588951084734045438223602675532742614474346235772079853785561943243698994663733244287554264728326759845836864981327515371204064556785454119561775534805768312981837498825194615573721910326534891333123712609170396204537861584598524805422077872185007137084480949201306031518572241103422021691916040007921178438181909398936701353524562995429818624036393433609699552356370566893605742012534501808555005484990953090062322506317710032154574640499994386506823054851675909710997982891866559307034591753259147940643932801004325552190671591282722457543443499980824267301951645188642564372795751712129336587550769043472830955025368714078470413688624921244569422268001590439555584916160540818083094027890706938881027250733623286981142976803845563069599719680440415538449647746054345489113420916380602461016082653834150056873907524279160707997658604950309137834951205441247401635625102960401317837408378155072391892169702881327106133858654287697709458161071435959824216974367441495963981091845299342250065921657280127768595246552535350639057457554442051647987980792634173690553355252138895212898299512512738266161786764240877383316900440298658876175607690800264034653637286764332070445117551440700171038676073150641274996983383330402330542754577786984013086857500287538783749065007918709856028146162062126590302863697147253497603050418060275153953780511477847258255434852913315729507319175774052298436864962865849014328572360958272637873814791039322303467348949071203373239676023534963306628004750902272626340500303825388123126000924575793455420283303428533605213091005651273704391111489953993330674981103930147104122624046201734872733166179103930386653579517105675934104461066812315790300729086754156802927179828920676511550789859389328035209456432186577874826793092777332623532940969692793708981269396657259506881725924603460680407496790269475279839159253120907423890544054303489909704991763136333182149779056207924760554489287895473914070937574397960855381946838578414613720150582706677255268060204416347655685024722098276818059310036169886603624508798347860795240854648249343162957715253153202715588707720809163282898172603693337372365909595347041601278997403968445421330624808427697920919143178421640068600338283392092048115962067828059708490328756461123470885962598784540107251150258100762172060814233851751551016083458719184827400873674007408515533416998084193854291381276858061165352545303745121680719309474255564180007045121274807746719670136811114744048988689081015189032303918254249706422139728612220883916347995286853530842789328073934462638826340378206106748725516288527048259962713629006727703357831728662186228235903773320219539323478437419349810343108852458220558740010086536284810941342314343818476225345474991456237238701707261582279328207923187239714828221476591772169969703332346813278446803776576710689174105486158168765834441764113586876895201748358036585991552397679352519621744344829353757502474565447453748331215762909916244696168437943207995979163302793125482983061435075203909370179320716950142149321656897371159623533694708510904392447890110539920446379147022545154921590808867854201276862672615414290928949708469154435989530580611032013127650995329224900149392274972470356178670718179950455707013924596108491485182654886616553415602077506704632181412482646425774957022007193452736537332637225309817606181785159347450751742654279338247025523887900292031524789723433420763110148199467562166773721631262045581721457948464697871757117987753902737971921727411589205477376326214570829763786233805741781370710931878674456427202706827909745802746117866498216075659339773032291125452172976680961467886572659105433981930256788005061408141990167949610619678165834289383402078869968602801324985225567715132640872854145997832359416207837659913848824198979847890409877333375011654026739059806202124556470665290635538283055496148906579969222691952364617326897717178841297239676940405953098286006796764994953122577465955509378795671898254630605165989760984644194577544619815283455497314549921239134886127373348141761078207028461397258545883432542442546272890486070997635169168021052486416584367340625752594004558147313787050970561378234895207604911359456164365940626220836962747392454650588886310836410762698321367207476032398791483395700121346036804568913319595366480868905824022660796244934570184028853417458759689937092281266576552341773159013749821619389661798576513052434907699299676788936216050464816222987692649838106163295181181683786031599691783989749530034315563882796873157091198462450062699053753764330386700137528200428859714435289889496938352206144538409725821366062710087140350033890751635650275113136741715169491679402075022256965141291071003558315760098041307959097643284900099668857138718077206985897728350373429825765190899106473718831008133889916964961426501416159605203233608240608978075448610522336776754643873032985231211668094634837588869804603306304074098099409514426780369108545014656841736376214759290455892268488104158473698718752764474809139575025679988222527935019419894666362643040041888425158699140126699095008991507306578447682255311664129780345991686902628111136465228652200378674769191896407199398208866563719739290865211650773747629685526361730209424919095388625276113042536739849925852741437065845139685864421075694624459963110462284320269287950054614302564015591951135981230133957513321700325620361009524245106119325710851715558898455789244083742651238969485758774583984914557212775577005684052192305403977393633382657560902757540684187903051440921594317095692179231976035590820653486801536992269433663998503483626594133528753704315934197625318907999508017231621270095878599093233995758738779749420120160734040871772643489114601002279436811037895902751948874398131778554616298448130111258314115169554543231855103758099199085607563249948790354698581277597115838289540348013989752050550873460519175398513031841254488647791773464472106126663406095387472142412110584475321401571720182875501213591421943299712540730019655138939906245118528919552555080443765980405327942980430634523875074020137309576618197358587897925367021321599745993154047411847278176839524540935598556876562564883225774374553186304646158345858830952864081541587640594981697791913384221428815806106506369482795171529293034364044103422958533432099436405803267669104556006350369827532333149804854426253467097909765929582187767866297514110455423538682319665913108098931091768274821691073104277819897352117426783515062422931462280201708780832024001343417748320225488998072021967438925265772946453234438641605405064687117514688900400528948846258469410694139943428132500606441632281310967317004502820303063801952091914684350074344426292499426749314089561075128943178281261311812057941293789325371600179063654806521987231603766942674452057133811347059763926317034683621332171738593304940620898360047613691726195895008630902462859089484994892329281334996811241467578188618727159752998986937963451860955539004592552189753656212862510440301565004774882076958349119360030344450811518938465212076197780798172599769090910863683766419244455301942779002386489136350157609451155643295417550652177357751448135217956834144514834293159240460523435475874467481691396480403447508341579939575233768528743248855930800821513918587956030949497615675365525995893119547909475233795680541145374411642610468838421449883766767537210728391573330682468891107658232213931260109899091086470095543968948025878698353808056545791547087852970629711038935584231522073865242154837602687934393745425555801136972328302189345946416297842554882572169956452108038439193575017433253143134146005044964955676732139154630934276006629463230249822584023400416328674926561835232283932022880191359679905963594734381534683317828352137711559325070279036219156282497375489463388783661193111741691175120198191795031460487716468059196438724386604921289852962093885821037207232632645323731851365891564954369608091753897203803071157986555086704129284484483897779479203828489321595755747536677267423317619937605905571414267619450206511193675101977223309688154243459840145916415734203347208593663975051542712063974244125297450828725336199229456067067823673960169232511353836665094029038560839980613728301855650566586541152432699703489884208087316274464616687142645523068362780667731041787024350593952029641253847853622357388001527987197051709106822522930200194848759998971102735894822162454869572477957522118870439410393779993858733522596776635252492517144734259651933133392460327507339448154305514931528690180767820998306285071877788779107771197022672412402264927220851715979098938720857340264013611192388908320325685273205088420491207731731065494531594901230519428365724827854834192584041980464447961692543434257770449390335381943931594239670703832830037052160660095538676073481157749022786286458435545051963272107207573043965335984870217072303338281918759554124252637137985898585672965200600376094916318162148738684037487351303422731878699768667835362876637167957422105445323115371057598699852248777827218513382100252930058251843093774975177316022353924924412652391537777898628204846440701492821268162287461350520178045812412910110989930056027881669701523502555545719965733723870850216580396111624063769405655081205524775020941246159874094700490379386061322861886937058942985498675749432068280353335948160499935880837495017328348458878373390248763180673981639183763170406328268124713000461987846404930225871256686227029130016342964862247824348112890582756564259699303078568882381311286468302187322795127133259916951866243593308530026571919457883491577523558116911482104020126509354313775827831040954079766613164832315801170357689743728581070653128813282185279496923301122180777611831232909812623835794433365007665139966056645389132822796744039086056798810017001187132395721628595799967501212420458696923835708577822135913190523574474909767131099165838586805197672410059580466268353464262445450159036505998519925379885588229731917359651136931626400719579552073482088244826031128269907461535026799815538259499705645817015853130284358240587762131783980162263229095886476286037066358373887144497859435226290865903272020409192039897832306118245284290101338598955074703560939395278112221560243283945440400136656795745232425292327014815503687499822889548568035740818995306194975567369276403957833249672995325396335199322549475432461257296227410873852081803547392221480460546576818625138665262999589373295583048465758425495698134249691497106901728676577346769803430106979870290523483705319115806578642149808905839182201898146608321553116977865726062255006718445161780358269548763291093130853012255437517787645567667370309803945258544825746362834398411664022805780147296076891831505235148439503397986972664174248729101554642818509914771657996011065871125264890130444567449926796652313717096767036427626752359349812244372125528015126069298952192306461969317565534968374890989954162457389805528155076971556660447982451892177066574343324667846053276725740258723294930021236899475220032016761345209263000930426352323794448531162761967524940468216363720219692893187328036437465900957530721463023363170547236158134670531308028495008304165699948510930200473839846138282553138150040284654081582193369114638313834200590176941951818628185224164902443869533049675332383529155277937111974380664970594963314105943217160156724378219044030038742865321795385333121293334045728034621180239000302288916025852946127157088231476419548605953071074971307485413942168573833202263726933661653590754755277005875449412973422317955451196361164415115922352035188123283715772604800028040273922066757103175383901377734489043325482845104043055473592332109876332655076631160165063124951164853008475423933264379722830176227644614747751460355440309950789612645064943558700787866398320551041462400146198181912476894990825785364970759274093880186856104966379276357395902067613176722778798294897352875009065964403405985053989115484835922602780102073924510538293986866433076146265359037413684201225249524856567675542941726713744860952446919701625903754850354092193788867719880976781042284301411862679859939039263281729243570546287042135674567243480576088504957756753732071922945540980492859620769815364327419734474613801567670252280947423233473677627487242430944849381857711766887973912470961491968694146044463257087303829505263436938422099077392238103773307282001617955841826250783743844680379649377512769038621063632002627283156244557449548874319093174891208828977093233458353172687282570627192416684327019823510617969070347597160296561026587897112806926032284507083542314483164456806079418550606270198965454085682077393231698754388657472289100465288923363665264702160647658326299176097476219348193906984643788948276967976256837316935611121142316107377327682032080013562601175234497913785453460765470660231254197081128201168239498116427167967144949537860544495780991832746542353889078069674215176111847234053114353515861565369893546911020510775883278519183618173222546777106805267572592565651381219127683889107190525061333720949009078388686692280153955305232977684623207664255430958037926484507841606191546388147651115066915102259979491459183284567770757435603230598230024782833945853125206401478095827122439435757637242936322307436183819701109691480778539442665623313547364882041782778125451837580408247658279688262267532355626507764132993268966864273833600664905358178716294685520914987270284229274509735926504068550302796954965118370143582355445570683613115540226884296871253172599181799037265156621452378989672256457512539799484669489016215316955932029088961739261233083476246664288148508661436876240075673674157627738711398513852665345330440246916779747099807492045044074981215132078434537773244480038077525041477565937448310601712254059002364105881390554533279396381134634210155913930568729137194823390881309723110860433330235876119114622985882396777816214611844950333609549089487425672042590055120453588198138150567953982209961582209404515001850535932236483958290416396650547017436108149956350377937062293971743167876445258209245594993783577667346285415288026108503616517041012760777402080183716482795332648787102877749449371035802306254745888935157803653949166054937773956369054960604229439177785054552606297858862611481952898406587502122929573677631368604135317200089332244232140556382413881966398637071284282013600898079631320471570421497463296067128085603467771760367174033246344367953055119952218998632154006722441704041864714233234727141940061915149994678648739814274092861548130399954157494053014603938296976793301982198185472558584420025959781078022761655892127593808879665787469007760838118514962963931192054811291406909405203473736750324099245094516211460307827747592910416648981110956373201613666322769640284582403663770578496547274585284187693263667567343365695148116153320328135448907080756566339461390548071724708840375855890167209704801505985391380807725688351351325667342464983171170344880702631100668935158559557882188262156364580546280697722822225407045416234802842506503624218551782146841640764788990965610737346447691198490427365129579009148310621727541719860114928257804667581796652933286912386862705041040485143254464117620486958926968985419648715388456339221160545913929564401640400814155492198683544855449093397742906069523496935581987278442782951099890758320665088762046160566710303446743740572343657924337209149898752206735433453367769402880131884763807439050578965643941296203229832275005039710875037385086148414188077841730758855530458058972220145193884746324147212734495137436950687098865071430915773373686647537590733946757155601195852859133915126975889459591989799867408551310118764500302846223184215064585393458045904528600411544359680309874047486274347184778837034138510462479219716165217570256669291873615642215323907734465013528857129064313422264514753300687212407174338857171949678478074125183062907730158255496838468546510678548654426579004143436131450844292140172560054620037944728126019600888212759679136123153651886940802291189832095445477133417069683559915168718668324719674530030552122353098999590961147908506553658782921282526386621125043119522273025617161062776648965364577223029808926424535510983815667261748108847380242387459672925740818393635600821999394933637984672845997841157583347963805545339530597166144361951185447321573703758885954966315123363563898284877805822338057576722754269117685851551473179823859132283915445062991081472102414684193235085773709016160404367549827134667693033864416366987359640237199994660639622581063307602935566306815345365469197344175087547307235105032992491724880847244331641697227667596404696907897392826197900966108508819897950989141719305363231215903949733907480096392789672815398087618153820843299402929772077284236088659821367660239646240622049841266469154939121533740015203418463673774582452467179474519718038525342245277798284001861102948513557652822418658567895924475149752599016356539875518460153365624097543983541407232198762288528385275852674727949306300880396716735641567040697570681120434393682996195019909315604988558370748646462579862171386627721123157808141214308669732013958074471232131613818632037006681791030785438984071335751103403499284229519926921785478222514704641543326069835083962363149133603682555834664101446590373478324624572756975439976097239321076785146774653345232130698318249037266228935026169117170017645301943956114170574932364803072407249139493263591136868263008730433989005172907276660881055461060307913314383240560537504636184575695582419974425105895669523475100470422354416166393796171162546138691222659081194475751046974029437345090859173344714734382591512319710472420549283741314102110968265487865401971911028771013969585584336093273533406014468767011522765511134522640591229371948707577245512874908017121840468595202874687244461429459213118745231378340261750539466237882395400355749633748185975303857366169849165263317887908035322636630672323856245548944770871858342886278113398085806915010469455931699834973852947332000722622362798257132514862843101643444792786318723015546612726048029321179348415750231359824168504532849928526264319624205458734663529698693938543508600256470193234650667096406219571563262109530202878666025755080857553951916884745471729893414435542996451619697843472466429858542892024186721159954598201907996597484421256733415682443261996502397837464485620959129211864730009120802156800671260315181481996717158388759645954336781347282562924660358760041396151866770750369873644695444330729634576346168516734915787114360769737376923798938181928281139999449625203949011276598913946883341853656523694976425832131941569785557229756751730494581363267480297255772762482805275363333484476397625983557808488917237026358052714276858183731977593560208231669219061320259252465814088730009961152401017915305794133170957111824305505959052873694419149304626573512663556198975333052331854073990828178854682554684579816195533502435318250393550747130537901698229221478607180670899863002734260827775601325460728777045851120592755456923152111030655812029613309429856316497494151785795004264964978464737040916065735589211469991391212221654751048728206446014483799546917266487524945865020407709572541117913992271967684258308131144452042293295459617062521564368956835495154026748154255606142835221176067044149178366520310498117226343899913383263094549986724428546927715611892144593470130440432231070453121498382924109852920900224808645730067894169100518082885587804461356873205643066801922304240052513656503777669844799089645345619517120693008838480441980573346804873308164766771394342318846650003940181701275456200944102913616548392116646707127969318854149056190043399795111440814223250861410136680570543281789642687043842316603850087442665995892107242083384763736892140745895226581108747363876341769605495161506580621975388534273825887955477427350763948851910263446203854822997182010117317787654757437520344067166684157587621306557630102455845713393298910470266426597467189389329899433226905932951237910690892475255995200749090965608213718951921538632688525805789880734077101519560520813272401818046187808144011538940492200005574852033010091437430609254243459096183956603949641606611527837439299323992077683652582813547024463921009644340877938171149082217788058072849888453674594716440411580389846469066847795248451484874716671335565859840423021718591036842908932568413799808985560452975652020812273420938333369733572758106674168501470468129164635657448438328176811416127401977588633796168279623831817251003052387469021269419893825877013029286180242561766769556343603489167621642758517160171199978239804167588292967114988725150745295966321034856830234951950513258899113190989860302477797856400482791490102047149728650092641855022644536613753544631384944759752335729220320418348432954251146755344871612145580056342530025460757789179088080935143544841431520890137697524532902885240354310163148409145136131508364784224368196853106251219159928377876806599889736669236804888337079207210866126400880672469846655683256821119336926037248112493739167529502299987021604019429710203081005246390322524839647561160831730771666697530274744753447703940860517900865768642535863390901776886660169484822147164691808452894093124821227019438113154789352561589849580313345795455260107058394835266700286416772338350840326648253445276224252771626664853559193209980658226077383954394000598814688798852430114388743974750125681295142950369597761052984776875947488128242761694067955302874450908667306620970959660015103743488769846966106625810490143286101056495374957634531215652017651651360591430653791578166169195107183475503771545867968216470190789503685343156429595657343770510303388464286140087462624677087884536562711136673160798714660378222190593660714565553605591830151378963712145621735043555990763623609358081666175749132146583282840036070136644823021861872619677206848655603898377921462523828194056047441461679053606572687444277584413751314702942893784532209744193643525947526496032425141736201384543966492619904535695593916159352536656090641512310145394790951545575396716515699047826976589010620659575076661569786579036870916993266881426423608085375219084227388942569911845417245012513838294850510270191222886124028556637554500273437707908928440663749997655673701625502366916194983873597859086687987695959103101495687823923429879088342320979130190183039195897795545292736580092464243043876136303919766595178114376071899879042859572139462271501921404949523288662364639889787746537601222949918255920411534049493998141934653284189713863317902739702082635329918123690261832355036466063912583873259360965870350034413039775021333622621389231378834605336890534815906426111788406850774785828993730749477513761543252291891807243898190622816588515985212798471886263847433752604323838199250075492476782729351531750834726356597517192524141166695686375826281207007687230597428656601660465388616117216004894746683326300937949433346514037482920192169601996023214149047182497108628938022872151507777222668426018981080728650892616080607242078700040050125600635721759053324751066185352059247790204156796543760213999649833465800072890509303966522757348946682998700816878302879881885563019492324108812239057318898247058754073501405849103658540236321672343806573070920644041856367428701247851225983298225952027357395904628010988055433788119846059424392160370938100579723530735804871199069977006101438093444130776238410932682900122059634709870457743672556430048455374214341827085125291967539035909996789334201013242682937085604372792967813756883356502663212479419548326604755739823058941252127702166178775465110080183745787639242380138642801200423264717330771816629037870900502503125438588228812975618586650202603715836274094634339538300403271192256897006098497372739908407163837087147318206115724463888263941833999088318953566827127656088446249248154660302456539190914012830416778282060170140428166986930459457696691811281875764758581497002084614250447552204228168010093868820524143089439362646864843676671014013192532875326282901113298512569289619123166326838169261836018097076875021202961579484858312237790277742132955679289196627110393228954706757571885227970687403757353271787952602203042130385150057764361998403481352967922109768834607203667808571501517215279673076748929228330648358621048560159091704987938593376323161692868706658808293662377861558632727013475044273736222482388933024683500012248264500232349911928859421625701834393591357079758565102408952065756714243185885220074342686238054974879238291150637268591013625056772829105098815268449869701600685933312940901063567259266859097915217447813950371973697558367359951125559022987228659444160087716857002666522689506875259608852595059237514238968165276735756603687831722660174577994018992201619077982772054945206602102870324882179554979162291034830762786808049696889108987433042223927163087633267165845913430986184921196005997575713954144087687639488380015294182957844208727525544004742995612864646034661125762839532590739326401942849646034526868655200141856272456383596265445883041816208387052913284710883253801187996842217380272684681749682519517058295124715430884925502019678024387934530416994271354747225640538384090914167944530506849576630419382795575166406516850901757018538617296763907135715565997758046534023444515645979295927193455328312794583574020526107603040338644419512146174406514406334540924315118996679243757824871796595314840573984352845536422209337390229011976165405568225019689838414784210524955323153835200456632400898831569587155622018079365595848721298603735976877118494579507638478319097670352234281275979613829886198987004117292809696983043321678677016028120341468840934762972991548238749626659667803092474850471167172398526563046456839282710107474055866986654894387985396565699742186848093440923997382402622901801577251839114379332899032324307377585183542363102880638448735136341560152416112008448010346976351407578747342283432683671538903589146895978618977962518603994188574270118663009332700468201902831630118641114184307446720146961281591359030187717699993996550401990070023207340390946677891301029643026317580486405017883499696806803287455495445910816655022393052330609145728583673453408022520313852224332716607825585751322054654328011961797210694425263334448571914280857711157164706992957305230504105863044593042208911190601624622320029717621990738535041046353413100474603587937441707998072973521488820102061401802085736335186439976992945593256756454875961215587030547967656320525108764383410914108179099962686890267057979206199005837112632045838332731619471726752992464397214036571864269094066819125615741705230051705005923450562668962172051807683350992101733572248571019752792439425758898688587757200344908508519416760501584660868667412622909785339911416484867408445291767535672866593130285723767913375094170865205989023887746790135279729797464018483001524258140377737776288680806852127999849223409768213176910767151679009993728737226953250602596589381693522220856504705233674355660629870409563395292535724267401281791332394604943382869302221428276889607907116845413136896254927821024071863260935636660442808945975408393081882367281964614494845783693431477091892168847366734435220264213175315752676745145533182650540434571525618783687763672623381415875930707028213898961573705418239079663041558181290295822530589004956664277480854473463350849765732032307095424269467547717737253954273942409410846159517394981725329846638427832889652706440629258651792071260764280846354200579257944085609128794175338072547977581331575869740984975630432259832350667367225748554008157073928284000109104904805358931515995150802476268483565090333355780376259770452533365604743540627651282604641861421424398284921215157630149439743906888706427851699333668276620536235354705518723124262518455477001922793241565434001502658471823152016759191221092853216854233958888109007354066681045022617010740116874135521133179501472584417183907303733911548054869358646426772414408419506028175496696153440689218086261238640149459430317386328014912738238688340868828616515712536822938180531110418679490706658717524379214840419078138936616619471239824777317102713514987453767896595745441309213325678655516035111534802958932565016903808598786685139652683048901620905951332916899336056576644321975486789261329208771421091884775484739356978605794221364700970359468455191943606069944079621339963348845368938244268195673281577502431989701313027035820463526610998560193064524910820662340756914700156543886829070114453505126681351737099041997719401498970988852620801137914203698260488435621993950766586976724808078648226156841660605225677547220587419340046553109182501897385708745125013524256121072279651440112491123777624709257849178976951118553434719957980294050967352329420344849158602204749478493905763782515766354578936450799294143212919554573756945096391014870209745244105855693115547307365275812813688224582747178916508545744796476963508261343056350133487244143573636101254137264068687754303813292696700604364177483074018431186016850766809147998230549691682373258931707791536991998923018260437190401879635243214459148780511623895053722899006619238050617202430017983674590055541823990985282328048640183980929022122973732768545593739771779022630420103535719191290535833540326221191665681369634758644053654028966720623001501674951858044128759266441955804644520323279989201344429003087116875927388817895909504983602775734838181453188001108977158311193387545617716943092098411215698676766956800049059196892823652825654737052909356157749426252226921033971350703466125855253624028849572708096137592346137270800179425969031942790956283806855993261384245087444412180606369381625717361646105349820196864991102719719340167267912739641024236664931260978830071601040074553087355612423094666328025247166799547253560657508752869478921159296173904282906567789067239094488783172052656675850728957350962519039476250477293837802878290735680497581993244777574213707508327380089961454005269783237330208887202469022424010333161154749826091913689959232917216314576250436169420733954076881557963835670832361020893596596897662533683108518531421762942622740134050073543486697391497544677773685373345596636642747651094996848933912054096189536074207677454357587781611307338357678923998317355537325964177581766443357009887186091169704792389944740565943798766607324819315029599753685437347814182234607209932223437218360315096402937339786269897765548020630026952152123212705293132460265525306364371926642192489747488813594851087596172351630915326984104498537815260396129777137896878269828654061797699951550425878122751221925095476965462325501154013425165092525696186872747063339091589104454362335278689321571540148463233742079341325280395242495705751647165702699407104153997561904478269305976384329236383308655370845917249828769635058273470563544421516496610674106757761062140189796806637277561705604265965987016178933817137705142245659627922236294889818339397390141082755568821665667123102775043207421475934413200758013225735669117426594865612975164851881650864479790373927938530768559239253868159495469586714687021181240205371307483840143727634711445862716209671359304769003894956319147866702103537874328197855134139549882596549127164949344488451409309011665910222857632221685282425438723774369028791376464260386606092581789230115828863602773427650637917656303821214793979848314189278635507402609995195995551591610206797364065125727664884768846458859949675204975517840003805783080179336794667902242332296333928518209012967908244321696278089314099995101833803706429729662243398880136804506771035226321964574045237357255017340648616189088350212634963931782663494169493558098762081921519488786202499964270722886164054991782504489001873998352678059096233239326744378083872961649067252459701186386878433009152882380722704080219374758600619698399385190383745917674878156799225388785389595049470879649569358404439034371282461032128355306481643886893387094500802886324221339214535103114948532031692574471950999836156797676185996226470363943525862655839685518624927614289980589426903463077533393773363734073597889096999424172457114188154556679833072030084153087705588603371118580745589768294125730115808284521475209784833511676028152582120068867427778629189957549117725787255528037411639933320451872190030539197830291408396919397501209745435359288662554596809441620771502727973414719222678136998380896873014364520123926282179569378509965973154209094886132961933360990469380741479999657230782404229468255228982505840623595964829573768613768085241262936323820104892271767845850983738595870982037959558346894015455949068376350554823098826049242424861692175604706033494250434809893351159650448647961912683632976180595551571369638895526369135610295039332819859477863628648675854948545774792696872541885851866495443948631293067365890317202217071354909191455636332282376603162454499587483276867890786959298015992132070463200895474200996092208943907371952845010558688380616956752863772473919198267631729865420888336433645735137054877674223640717816680946690128175068265672515042909658990278579282953999743330096848569745988279729957296405784425876544441709723356947150631833457052618036077335649459498665012327511011833673372255060355988396126698589197693117478668928161550739769405267753790825815044870607437527572231341325499609460945532220715478062409040840703294898341207758124285737953837946833359512537536193092900681135998158281166691893572583425031305635925531796327755326918447192864264521797391899585514798336612172610150738513917875134614662540861738646252682889794469285691611246976629436320823931755750977968114842518204105118020779176237651025017607402172019307165828229120828946311205300913720739445288325720913762304097964488804845158612513818597762380364235587530533760507666314046219649190432536257736837418767431458784909016772519004102549889671173591612860531160045965470931753504253544399790971258203647959521753708339154629394423487851818230270706987205548141403422457754647448674460634178408125341512341660841187544855941791651279660812025099104246990032639843206370789096600647437138665035294093932417976770310539206270823504367111983900274108140341899061733484362115296700017908759756140587758476408640107854793843768293913178824702376787595613331415770741179577797129862413044442391514663037571949430299385531842662474797620796525908761476286128061029497420376604402185789825642872503653320310357089153874332816382585808327950969191681349676785447981237295083639191134031721434779402281470051231095621677035028770906467871094336698690390015776909977379248952983323109193820235369977876570165543280951027084249292197847609973074051169786287085300022994566674755153654194810734975793331942737597540855565751778881379050475382401809423919939558517616175879814949925544830618355839828440147719921324413512666421454584125489889383050433842856670961421961001547451597720806604652394741390982205247128886094815926409007062781122830623648077295740480170102109859136345640463362092007465205821038830247780097784823708296142166861502069930194458763663312376546472955294455096653279617225119229029937894220134193687756380214636004529311316218867725635540832407618586337955792132013642436981965551011853219234081024819207202904009277602478626502356692710026099480064922564770333143361612402767741421744172018344447988312271656872074712943834510544542020691442489019893367695615779942393639702063305879714822880606446397425193291582487986066906356933253038168254940261473928714790387061765081644018549248682306328724489122139738487518104670518370177729885296784335398140286844372954727266405205883582804803380353034734659913861607719785925108789777882451081519033561267298054358090420942236174767514521223683052764607602265189376995783703538324224968548601748068025595768536119286468318973083269906116341704183570348373883730156556054760110975880749731657879894358735937865594866329175136468386419642926886527758728078065448316366936612817046783228954132486917051800438957527512097073946025022139514258431203325254803316250721862729114517473577320871976856729406271762131418249362787975151791838603083854625647755626336387823211041802091477594843781511477230798530074771804124959893613143629880401105967885414065559829731129770961334337260747365257667099499155677244076761315054358982699187078383626602430278596466319356246624483856377349124547498937427016884491404042908385856278449291214754272302850409083621979466822417238678911056344940733017231593765601798130310644547726084045605612165731706806354633103114655099450374410390404708452232376292137806177784713354475989103422322749815453743507200778880961208214339333544910677998094485552838214586802134331398710272264271552288825194535602607072655220021584666565951189512218597124837456164106440538948711374279746840533634504564541107715658190566426398443119300150182412917128063327989969489952104426458829944580446533592124736422983744099605560743831370493937304102051102255858233583638949202525000612409751183599435409429169174100184023088460440011577734512222256067829774645801315428252072306804339485438646202063884901393028442831797865443215912895974652955266845389890869583027994159500325659491373953844701411706263340254221164649602037765358604755867508640417113771948711220059709130853324627245485379533591990875491984048271452075356278901738090187884523477780792033355938925018569775948835030595318319984307849265270079776830261836754654553860657594334941335428199004327682544079627703496590547356351755525491477629032530269374227140157080085976448895248542762894727986122844197415773747644547930536411714850996736964112259343526475456553246738157869103465403637588615616820925750345634952157574604679647479500634594909096178793881685069645171501902716592381731344019575233704447049876519090170700358070496367813702162345311390403737118776641583654591217114449636627215830397880440137341292413376079109133426075861650384556628587922000511790643817194380295832046236490174189282682640986486987337498149011814065172063801675628613889310907272175673361991479182206189173913035894325760421899250469093150236745970428925035704854963030609194220739800501569957519074057807807035510665309601570035154472149718874216999230477729691467699910286359717375604992397712594352162861779643788557221668089268196220378867461872292900219475747595590273896096274105947769105814459782466260088498279600309000095518465390376308768712188542073577768808211055748131316708280157644015644950637604575985723603451918445940185398284185279598747548104380647527643405991626698074291120601120792009929537315047913038573021122127294587272995575921838583593467810200746872012780893102518922718885366352434268455234697504735060084289713115742234757192034415109511854604748997677983120634136864244102168019297937449607629664405240172410762946264230027054957679252120958539407582409303395493124744437410922490596819400702218017947067829471072000021234042338928655720508506358229467811676479152530328872783265543524226216482600444948916966812049965468661405147797723858559772152609497006828008042759838728326553045675661296448722180779067791403498620323321107582293634389563780683355344432499827304070470439632559558539412046023290743142790282466947652148094821136212604912074675181033420360851225546992466330972092760038407611700646004253202047304741077361493842865949367362192257363779670487307261647957943461538267391342783763445085348905479937316381805224600507741330222919911556963175635504653561180658237344045868075854673722014162877551073684458508023796079381099275171236674745973432289330260738566969057779057661881465641840554905040971417553406443239491848407438566651554898414271247287784637581706278925777016020632809550477740163537105893948340782862687377194642428699948264496271797856930072317856001858760930149846922608689140686636103266147112931760373957838917233003352266522423796365204391400051196462521552449988357331299302941704529165568385033207346911385494999474881941931319663775851667237869564610804950669705779167956254431237635609679120203316716047883574907859216430623693612677251227701078421553923829001603955031125266451828605624918141091069439081219692125447243515962542958707529034677138529836483875042105176840083889186975524537765173797855498015975124851722177051137586626047120497948126833894798351171517290444301727334073215074019218110178372757452145238518208990554382429201236668239538854404272203798482502754147184837707490392484233588346850737273947346416543154911117064460321846073498910830554616203012925811609270913921048676138537343519935539826911272646709836882800665973831391192110392065132534332733087215930433245556645431599640188264348146382078987820346141697723773482561501754386482273721536382998586977017811735845675992070677850072161428715389152155038840697496369503630929610972858693952463283923681768549689824761435963234371651353226022294602233992209503255604145653823926374449995768974506116439440055243739366600087904414864049931688533893481637751213908636253444558671625276770605703450460628475006097418776791545802089160308985416025412691560057668605289630372397445469920956922549996458758908997898337462313370711674770626426173391533540201978044296523593077399381224500118274271131929324438560856636101327190409218566375510077155045505717067159874465532066776927721272997649392332784667530250524918459444493046468446600611864301368775289739582985653061280329075016138122166557624076157673900497167489031770889481311891655699447827678356805278316045989727900197066652987150703372070147600896507459671758034551857131706872824957852456354839946948032393660219330783944529414635617412265707421091436781424755986560516759642842732846170912046351473899351261862041360244397772624492483418686609434261614371745829411598379395124490479214102310946313102144609620618863265590473936676208770503579071769141889647966102500893290802566873420617779687674446703326789122572143514713466549456216609703904166741549007396091834101895282665333880367065674592063849033574618063144920136460975126249159366239129360396081969531056091430938183333283298770742789869513768307958209924109257400080636820975923901600063972551778493016844729435397549979588433014256335055518283819257307641532115455828221493556569211163743673266471137385471778015713237910078015335924644640000403370332622100488486916678710219977633456116446820892283415185852704339209962999659716597086627697265861872038457411939221018221805822112739852636223852539114294204080456779757503398865418912851210779256553488123299871539373869254938826176852417827307328489424933843150204393537413086850536289017266268377607006865498688932253371692762335390214580209508276739389258482415417781617355611543537915682093266141105082581425699566562851315696630834856284358264610705671782768517448460639066072788964402695279898143176341374104523293889078367232021446911880993203119697534975684800523780343364312752073772353240438172837532480021956445897455533024706117791987512352682218567661923929735506994011420117478157513718140763916155954777057112722370317466318949256747582938209100464428086278462076513528367447596263378374090502626478003563470320416925561104733876413082648649836068362078070681840824058316392467911266256188502800669440334700383893336059877152038583582325183406833929682416107198623679415382472034961497957510572068889779614117456847924356793797291214518605222406502431313778701851521146630231277941432532162763745716856672710429562952344323675861198861613614392255158256808358589079736031049600831421674551258297953621869642819620828540967462626789625483051032360973235946167855480986214974634699894186926077165903070299603843059894064972429691386689958610310781718378564806476674744460425004121119801084232698475778456332769730520100815652738370658025823472134331513806159630573721018759166428494073021957545474021822479380437929700886336076196194544413520411742148022780298846475556776686147459985824162618684962787158514950796865484883157006318814908435219084000156120262089689154223045460876518536778561280542247610762289041618607443957080054453427245546475721272339811103766215083055555296634809318358155925953874312808549118893850143018494344589706662747912837844146073136439388445712683733375485122438681462241514696892246334645936670894555970076104700523167738895245573190535644604658041570834310048404131100247662069103041273581527960004407804087946811843111060394872837900892184093724002353297379932638261278378525757315014962542283804035394763709995726692787648994255034137013028798726488468596495317635878536630824920545664386630122921419509101733637066345766897027000207285456992941528565903998811965016798021079189169760375625654882619412250819526773947134292366831971276743890192686348339111767836562316684997033076603283015020360244730087091917045022463545732223360184172473915262780413455943427062733380577761284978697750425985756032553787878313396626651629640136597204178673859359181258225358952023084600183178055408663137881857357801121204291246091700007475252764518183802077371657559536483981091336788861344668288701516225643777247615927959415872063654090450025289769875363884337718274181683201373893231406542965296715394748425323552208019597095486542756626529382976908507387215236429506940368576457775285237811256736011181046838798452684055402727734462362268431044599327609532446889984570625994574518082269883718351917789648278543209642421420905907743304101595575167875188311730795228427635032235160204722461021867485967227022208874745535923035159759658755240035159500743697228763491980969844432196349634269447772148188393913414288148016203662206231141743343607505167200835634591542269623053681687300472496418971776675636488649188151669469238701157770612206391996258805631190167839743440142183636806891190209155614728470131921302462848839148943819481813894989103689278932806384675428965567187974300993251827096820381581466337133501612214391054578726643121692277768903000731986613309295448049269618246608073137118312681368631563620562869808668149749627726345329969991132760062104388706761781133998185030476678583618930942325481424320642252593847359548316424576604707576418089784485845267104487334354095681036754731172627821246458403575061393509364395461863093163337395443072872958045205750414049793307393536054991740804150067687068659432351146268214068820873466629798785801333553875345755633058515309542522122882249032206482920605290270133982361955397983574949680194201872406064874923144118132896670355055695836331624324942852090260736630253924899571715259692979666938725396905903403713922400734259366243918115734595199354051941205752225671221716259506185993880035482495781575503755363358927627166958232724134947253159269196638578449004917428948810491247379397761774300212937576772975408446078741326386264395536842652908932931496915037298124973920884468043792283725618361940334685193982604897673881177379144802845069247018828249998630790200328334623320941640966081051151118540240413717916240563012134236684217667488023427844897076981193769154182148074068808274549033645343551800528866636912114232469292530603699171043394723366456669952124750008174109445786168918211326105820676059313633712384817011087904312059978264174458744910885276631055883971462477752293195725503709840428005316889257721281819627500750532074197230703059789650830472320529225141730835846568691525303073280533298834101284008754728881815923437029066895989113906100254707316801235750771631816488736010866312191256977623015969271944575852554651262651240396434628677722229553291049783422312029330802350427185722597335485347768292513918126544296526923256640395297171594443818383048060012849663334583637217807650438587745317521937846932989829461711361805510101476380675034498330268479306055542221628515044220292571867198377827147361250619627534880839462872275905223109741649433762297037863290932643765015595568256641057130759886788392019949686530992539805706558874319266270277101404430057865679103199538789745366513298898157158698012671752865078313399764964082127111384236585761312899322089788782577605066573534017245484378226976543096951771538166820237332630124671822526566030619593401301932822319014361347444482117891045808572578355730682392574117616389366486379814992004945865620597557719850280355908230783914655840029918907319001164383910287741446159853462784430423112360331372787061616880834605605801553812775311342587489687214162667447640231999797965058068496391553890758096264225206486613094062024693935386617199938645560682698067880008564178494058047044942777777741757096749290611761761650909545291309743107594438632449802201391737645491307446335619793961180804165913753849125077978014765604249369432478193476582365552794527248234957727897511810342316513477426911840829607773160703655864040703771085224158373222385566654046955766975764509885058876252934254504015083769946709253809009314448360598408434421223528082452043800576428964399627512371684668147380902863875654412581754889701030724358265123487925764988440847596772334583944240198812107929127285186285467272131754466244204532513971309963157535506413097687356763516731299153117183501486108971710793993911001277742300070287070414421080994608899662383568005592765833806656004492539559927403934465894206158242795691202742115537946659608944821862790502782576826598908929841940992670634765506460634089393740304023505362656260119542468393248834327039118454655406453171011412162094349970001049198184606611113663366059856946732280202746779964448460321321658073371531590300063904474109647731002097993435124033969858464983170198132649874400235073325790043260369730376452469408093249676509811856012691803794115426537571963449751976906617561143231215258163175403419996691327154274463235430285940789241048388605307368559700689236373431294439229097235481201012285549066886789595118479666890559411137574329660945043503710568578013962453579909684218417509791470247277792949665244780818202409733353594404615918697823053601667579213010333904380472689569626697654875427175659373652610727711247641516238977838200031432605416248205015323183421236561754827995363408211126953447420064976022818298105449846696785148036063626836571440626318614785736968515304331830409525153707266756616683985419237772818996060142641118655806129033082873205390055389195946131407020548219930083701420498035598857046179948346277579103278072544718313471856618665665254742486408869284685623469797424346632375272535207567434472024426500989530019433738518607843998603529422303442853258832400110187532976831211391026046593533031107214006334817851652425810689834330113865782118078398001167921235326230798329273134240542703871149402583949879926935738646547205185248930110472313450983452131154141512059563848730202305057306806077606032672333667071351242210778701556717824218703538729358464954131743628069168718872605016520055880055417859569008490110107850306502803889640000909870102074121738781987302403244129088460928018561071237739995017801534527693703124623949676642116042024182995974880537370683010072538919670160437990823052864946975079380292136053152217610613477667578232392690708654954793463406088918707391431998995905225293323799950713734048549701305398559068009267870139039836634095288179479839985523672335369685320408606474097958356017164469365526601018414833140912820356519144135591425225243702260789482533749321804316898154451336577419739355831421723088470656906075867867394774722664152553485455043929243332195407757006141596755269527566453762943580789844636675005143790984276519275499111602723270437007846228373764314932225133951318828204101569778359907304966674398419863420916451879663802178384275797851717440714653058273122248072448518727550410166757746843743979194721061413946886882421075294930749163393868402444575876779408455401702020953544559735379244805489925609303485756775223238129995359673402554831161253259423079049315594496481163246905946669150057190486641222036942615617413724754237747661383950459933929559319574436204110760358850083427145552648350171571066886922525687644623769095586391948183905766225208415464170976677284874958378970722559376325100596571903640114945889019403699075094931137880109863991068462886940324564212418030720812879543860180849664379442552165281806720805570516216318849609060152118269936722318697510408987481846245051960893891296727136071307225536229631081102796022187781954734035884920161617326033227238212023856401670736898910752924314300397177018650980257852149177516591784320886126311941033061582136686758107188520563307236140036224370499931593281298740439665096761274528048117734574820447088037625015697294543653292209142466605092142457319345443964075399363146536519730121533123401221916328384305937785981363262757603874850252013313029579043256611497570951418879280062273445968593833210827930870156913380339805885899194614552491657727073566644832726960382841071005605209740450707918220242604744109586200180932497730734928132412755511716590879296765141231632350669428677526831403579336203871175297428502799430764888962766985708838477957088152282909116910074344243404982846095446581393816987455262014989739504513037982779918612365966773886075921794832455476606329199202010225196779541170353601730988793781997464715346437374362514019526161638552339002013368768912426490871715525914066962326096256290358603014414411142748782654087930193953308932822149215917948173560445841575570714825234427980333409100744760522521743560782957489008052017830981875316635618623474890312379386434552384382446557739598148442625070934561940071223474745871830837020939569106610903950086757203124074123632376639944523666757857084918559027892026273364559380936169031561392172907109050595063290759882189410720467770913850163936098447551946367444838941496367232242880653915972401851807760768467473088807147634108844628443325545852249058036525657814008855799214143219989145648644506984058461458396064200226765361136339356782574813780263841544226448983474763893368081782208109770217988465036897654875246988753269141062540984404975873671849614912627951427019174851469643818322208880953007027732988118520816396652942520445412907226486850655264335979061594457274226131750179974364813364434336802897416972591735654651895970650089778927900253462387275912961597907644447834847523459123557825606712508437334341325551644946855720957746346173516391961878293335761333400500849990266476238561793515582872009783474590712551894642055259143472917978691177186313901295340699512429836258722233611930231569107930703084491821190558354021996466423093560426786715824802180191835983517422957880742083703685555314876658064917443280580324667702898888889806495649098150077803558263170223609425431006106257039829092715720409155939735123184318713461850459786759256998777039157469499924502930398525994283020497122423657754556688840282420056644488932743852146791403280506664229035413369854117414567153128378569647325621065555276818739248247517504168217423203201116000834798673215149565876191219732251675293077625498221136272213370070652241217660631136402220754304785060593346627229806062175792866303412420858406609852974668961080258845899518921634098027343174769393185182147054570835758209990884974312370955830446807387542430813640135512777469453818286757801334093732128165045476126217321549451346983146759329019735970723654980979518913893506272850830719987121858350695161272338671228730035623986181188939776222821826614433119211872973023668583613195982335783101873907324728942264899893823192796444493465241864727476181800127832584970216564274460265929280341608788708432087536149601527755020281614238265713617015385831220322138836675271843771458021401475737667274682424710945931583533160198385589897508924529378153282755278863258975588824529103767187445026574405028589552359082824721952347270773231994096626081758156973084039451738569465167731170388343531748268013662715928361521206064091197830418147314465615838475013670501354524081633369564575646191683483880512801686522493082852378959179059935756984566816955847659847805174128159978700334803396832381671568868111900246585147227283051458763670773244993209322603844570808625857653907975736406583225987253140968337699428147172252864240953236681041164116195218669744665057300534748161287926796584895911668834326909123797720627254624643982092554763657836888372861910002892204101871349379996885317804000493009992209229428933132946104949857509433362960842205226904846744053189401867954811809161499646829199489958477798708678024299366729670814043535458675063857791793328886310335857647080879923946369240000926140081538762609909635735741099628177946851017657592355713025712765815069393779684651135557659862821401960727120708044023377036334810907428786155570971159233117732259504428513023471035631735163442039363630414556116506357274262698924972638001752654518897151409957709097979788549593288152991881185230759109504470191577653442924807665542485684323843929216864334957192531584056968272392232877247650806080223377300652876767233396224333415714368147575587787435782882320641607242674982069550557671600736219012327891863402509531810821026874587078134052696606091862783309637858750650119601252005822339816542667541341322238243997578057166604195055508401180245095727703474442609673049731847051970918370741732408174704646808107687685716244989242578248923797860685185904700074098683716522928988930246450419901621469538519014347293033773209404683677882387620737308803127464577464521109284444664960913378964770174813307240214071269785040834510057723485202411686474497913552280938792589635366346023849613319740638287279698357645723024543695320266835793084576797640200272732321608019422482576840803446847052370173987361183233097718125934658120736895896071849771168206114756604030597706941040072196803098573248354062986196962014315659796956045872275277053910608562696220246390066336824180728639726334683059210397400210706072934925708938507207843781166791161384905508124496159663774582441836011955120675059387536884888039749735966225862888877981965692532508116211560179612256916667246039380747009535701840247857999382561613990763330617635410394399662292509860418713832953681365867779959170277441334211250122388531317881154001679832854664205704819107125999841189182377396920547793174409242708327923178451090866540950392969898605531621585759423513121520425118797622911920053589930159924052386554974222359073199895044469600022890425735315412033612686279199264393540784274294166369750669079521314367694968743623917428109753616182541301666439376245412894093120244642017656385722822184518285625403695398919247571468995567806928786716138608130645411311555260963689340631620683591812464292744234033942635031674438297661852823998179380477151089044367736959700728730008959510980193351517893221361995173065590179608659427510334188952054763201680964825596522536126351282221271084712503047438698732589683114526093277584174274845214656899270719752405658878832043639647928432366788731177211290338458965531401806789990152771109932187231575687288135456836580406277281495519711370491358937860087180044266750894508116998018399848735093677903282298296453538336010381326130087870961511457814489548195330921405514063533442867663721013189764250937057127692942126516618447109047843274994060760211156172131550913596166530915986529578269271692515210680573048527412472790290646006813841459524558287817441513080091519683125145518300087027603442457248731186526416601612474113171735606375123471555483098576774118796340609740055637204215087219795920453881412742944048826194226657838973898306893883938530997460034648929028738354388126819807596555066278604551599763365379578114378674400023074976548488444714414972133801832622136488244535801444935885701024910702063694846443461428992122050131437896010833294965488529939213662045333172971591431981880670868834045303204111904577780684136029554528433366243185076524672618280585711956603229649517411158379588466286084540730135574789535355901759708583296466207993729604528198360006000302293590416224455087213471704753562774533051459224307322868316336631709190164118340490706700210760529364101630617759748843858004658305881957692054759012303369422494176988085587838546199694781988188371059470480040638358319399157720656799900175308345981379106901914775336792829042424423041422927431265807502176162645290149610731438988169102690780765366028846974629170399545700140804181574875171951427834846833651313794956166116415748048995520863316726131580290873455098474220367424940381882687951880501231581561255752079344760540796425474095551118291426842842936280323407244580474497408885115444277725138030241775570347861928488692384405512487318480540006369936563346857677748810668826793863417284573341114862224286023746143175958373642323259690092402737328185721003627509033043639567758692180632059336847827172450117053777145399968201760462669388550058661311358908358280650121030429032377501442491216504798104246399868118891119155539091892634252240346027459556584906151900111841053550187463912692715737922341758809095929742425101912135470426230957097055741976747169320796959490504197994251106684434887002432504631801880901365371749972738368743036085610874101782951350946291206562249127331147241566311542420963773857122929207613011201438073048387620092504407966067254841333781652467419902216281811990558496446709249377724746641241163088689112467199964834533466514820676833662248665000535631320268357597273196164916986140425206678166021484858441200464021244569607277821832459453760997502850646261534786781543304568629207077425978295561793103025292263756158301531737199151639880168923928319039947115237344953352896911369211128062868745287932596683586792017605718642485652083932038590449078381432807222304034200272526550521741776106732378864679911240619367891379132658630421986167521464044929377695532542670343068990567289101211236335496411703695166463255995389078405408700987030097423454327207573458777058536290640402307584386161982091519752323662550428904040935876896987369817194702539832981199819830111295843956197763589970509045338028586680828827376785269198392635486960661330677553216580148294130236154202371238252717643448026856691361440499143198482383559742793812808648892944977059140916921328415247822530401381371557131178155809101017575543861493656378623734397130363789241635533242845339112505990137403149517574801591335601971162088628517988157914125181622326584367264699419671037027602380873910095057995106013615266697712496679463292183873944413188982465017899755453710838440544156222391990555804410089259007276243242962722926030374040161963729691528435744380397164119400136616621564067472445561362189012730987336249588315952845323501874736948337021335821709185637831578378111480881881548144373281361525941414644759908843849918644838181389262518589249956526542153622887348187652342108879254910967940028551278489639506003327523513580021755376010736264797030330803213888939885742395635202187966415734506651247956739652926998762439730207867580807088074191604611931551930750037434302930126117241869970450851137017990424918475150243565112658817789747257901510077359294722560692555989948398819109302957947856009136008632067394827558130079162367745056732238068443111873464520766738867994977390344858532917871141603376986726329229134313339064806302963280063578117618140456906666250126240520537184001072943079196495891428189494037445626816045307943146666571445711735979315694265258262045162291366682341057009400641521707325394740887507778879599648113251539065804868020057017237083661081531332170169189715819749754409695263970422645127855277219548024467036708996011578894249384342324728847818910474164915733363896930651943884349308335376336115130378222487469964730040469074071226851491508338695694404138620541095530656593314876654305106921409964940466746559978410556928354786217266083424947804557920135774556588296334226348391326281523284420846985470591260087250638815335135779472115547298494207099192545411271536325698212826512001726465969951704517751525797434273193708630222180653274344472320226841864169218059817384444943921397066132962189639088796719913532230912906745897344935476627017465877838838663937269330776428872518403843441727848469454290922462772877033638558890566248373844215237815256668471137589038259318846769985845360215517637737452851854015112946566999805151418069915017094126867114576832549341423429504914756282487467634315248303658473546493451802106059218417537296356576236389787304656123970066084283314534516369878972014530382605234404812037118800101929696650258508033484905837789878273485564347375818712869749673349764228335456913086368296306945311274276155444957712487867851817515547648790159744460615255475652931640083860102749444976676109795066160680070003996226730604421851759688609492133017864675314642735605454621811823514993084270556644401183803409214941067308985387244483306004318458120487653949194303329660569125053320757511178424894965720799067129735210517250416707697710677290487684989009402262720925101061028038181802090359354986469104586961439770532952723828731763878782849658693504615192511589310646903625824330076362899552731483539678796942462345615225365733629835977563316693643788491138937945772581634059884727182118815574112171126976991396219194703695028103671764778091559999805878437864500334472468562458630323344783162290321613198299086178541227942904357682347658788673615745938993115020620501717546036005750494432672212150335700797104761442459727673911229751985973406780571581560846890168683953374487842331003229132553646274426813484828311438392928677021405088985383997856987084590785319244575280180450271684282057994944486293765309517257374916286150887501699805172612412527156876855193943068137840143587080631380142825762496362648838602561264190902734351373951159344492712398251331496712604199274925490473597520926870145766022590794946929723095203513752212826491473111228266666057083636673744754587886573948740833521301518568604375355620812636733325635388024343696551381076203940967973888191096811215274051332828236422699503263826522971884654714593400606587903707695901918996180746389452604436615888773550203953910488059318266934456645586436022815137125117754633710379492290780129113250332526567354735797280764336052104735162077552978516047705131121173095532462090288003939564214717639312204303795091542694042960522366211593264603320971871569851995015868844882504671653005806830066409270021070523937083167881712531114497961175417408181908411229698667109823177525319207869803858570351521994400598249703142476294517651630222175390342783510974261406171552258010412079050350192177186072636837034066865910990003386146151684633474619870965014162007573183274432707275328564557479312566711108249821191293645316173610198625351153311889885190953925799337698553370117494259924581880052732661566961663782359649259821417573195179952153700737912083018974523722405043507178567621455993971452389727324784848374898223538071943634108354359142846475690641145689372564498528010281813285317055224748242391687687031766436702495201747161361900281608708018222021716674784882780433417326161070815806881371335828762416094536849464176297185089011786483402912432596307808490793868483948695290384883578506554501210349088280172284076074910374327447926889649267190894766930512574953386525520136249345261711353197184753173479968806077059290736661649577651461100082193391641921537346163804307586302904646407583525831767017356093191664903845851135983762084079886027260655397209201384219837251626047137975791020413849504463428435690096140343154831601532080687280855900299525256150494430849937047896828730660125347633434657971082098775426611664432111640379783340851042052032558734763533185470695882070899351004244761104388350924016911338717056351533544241751535238637570703215749441980601433797902407153476415779723381079071155774051444879378084787609415455599724417880806171236921179646317767804354255230775973836922632375675014383407624376917592027479770817080247731261130087962198121240199382688675692727339652024660278258845559016884148278045411196869980075910978377670796329111887426213906482587693712929438892932011812830110691045753010410026511554088465297646790519319351627336278513004157239412150577949849727801502998174908047260238167898127434173169505185663480693872292872580199003690312366471427123510889821144131369978977534545042055924248963498826054579236163142688356638081654539490207574176234562203964672764050704058763918418680294158550654690335152195142496365039238105454568650408717355462621657212188372654141915701010424488135902526303343845190768879271075013320312118766559050394880266963895409989289626902783757619336730100056460719123229243713147192339840297598804447179844070726079670501027062624197658543444861808153752999258412726685927442099925345700233011244901090535695856895934547334483256461829685580994769818123327044742471824422625478725842148942803433211441689975070920118816865338841652706976028471982383549030149921073359202776915258918078414820556148451730349603788366943481269900111183150126676720110519190115955047100408955513782444751131957946086131159751335228530704381116494491883692127293905001376328912476167396750839627259371559090933208921938346868276923305805485941184843295220849458008348048868051675634137016238261375827522243923724185092850962535400795839302043601441706073867720577849844447025255924805758441472164791154112772416147846657652690984924787206985711835781752399724977761236236500757950404996421090104727560564181360643250147281534219458603941360604311701090667264584872537249803154869624608850732810325131487752670509616905583956239450056979448665292942972564405361818513077299673598467216094552383042831530271948028652120052559731892226512642772587412946083927167572576905515293440632705263122260283188596909627247224923378239977831834464009335535759579243289507057926259412075319150213102038166301827181652622825583640770136443892460033693831264574996761833905297373017854729009973771031233991300054420318620701768127915643176755726176791722733148768706149997893701614482664226822076201624982413527243812250219464957866294998634154673226174541727597404601809351041832170041115034822183209881348137763911216790101485292190468578586527163041607527383936115528318563059868105788101071294352107612667497926180742499323990749595436169671976430272006840363063994019197633840313866100726094887898392760267500488595379220971090899603578246288938906781488279798564100496167209611014851657445953947297485397258148061922665211493119638337370115955375496256659747857448632850149686003879543597777720062278462385618567889697992557759762977760605375698765428919161114239233338351998510165174857585751949390546128622189540673618679853964366023207491107659034021440454921415126464295356147498701584859230367179352387578199748578653604827657427365038030198301236212184539558239377066107298681040015775111446540756508108371496911590515672760497861374400561023231020996002761751809177735332404638123888972796905708113599581278948978587585392383297725299488998600269238630374021080089070632113971414130908100145600847488226665894178372831896230426864949796702271626418601892770239712162629794556031572996463044146349345757973000188376749342959653078781071907830226142143221905618677359451965341649135507891613272858270021788989074298447975085551568524673296172399228513645924758965065575812538011621239438017299039612096251907021766264173325560588150836765985107686403873101787299758254693170494946804646521072605774089183422832965188338559376326896058152195750226541843821450255281097260177634617669070868132277467161349170900460148195678321690937238605838413861227847189501051061831621935192707337555086494450771411237068160997333551850267386150888335015173826253590841281862678545548379110838025483162592874366114069388579872064440369535525402557417985472991989613016568128343787656007435583043480010378691273462766155673590743902240676617157299505823747543706138131621556108907678757644676691367053595860839064431012881465104728623192461744787818730598563529191242101649647613615609360125235954936913126816410146760293945036542967684272545816086222884288291444129441704642527530680738935219768363743156095933692224535855887614681996585333116186666686513027102862564019961844135761730154752159174636088813274327032575580311811186278443584502372624324476177602515470478891088486206149655327482214669364532905532714735255369798604117875193642198034152777906144259925118362438280498058043935616139306880193003119187407897135272330476319474176575019480626084312730414002327958896075306638352855769221636363709406152814122260102585889327108343297649971216539916826908033090652325212013452782114024799235074493122200355777154210303944712722468671231680578785931630222195057453872549628767129837295042965776721244574011027169999783119499855609532091378439305145850918485287659196282093904297812217005730737236640018892960095626914072655538548988438752335353189036076901347455450683728031094629686653969940262816498792686796681659242714363443544363470145507534689932418435243283211569687198892704932024954327960747432779277247618570422355388344677094255195885410945185750997379438103835802762393791308274309980447413337449896728083007149219642979790697983788595966981590074916265084191121423162348348877441375004832911509917558730025712583726151902673401090807769700616365069429812189623077874636423471232358947972215823882515607112057891291851516683090982700978023835575801911057948312526171987618536203290214255624723900102556560342301296262053478047000706295245496876771192940817779939072373179576566421104441590466144302921995489651259339153895591856114250424394600984211138620675870452412240703768840104769650449623601411186598638477309053894848174799363014572453299052568526057582401915286487005110633582513826943681197753243304061890985227012037626174076445354266946477909095331741549218692076170264406556200102065993345510252516963162741623589513632003482181529415966936923543821143232165251051263698179534431068501240929326606837926320590868389317141762989046705555502079642707863021839369515130062399993868852709312791176301918206028870309621162952898806853193911578705439249292008613943182338441319927457885853810404613507581451031888380700182238664720349669567025136952048697408304722558019422071430644869058395875442792046585734884584455254528931667804124674537455352134724686905727566094136049356323014059441696202276877202940273787436832663756993208174656447603994216484414434179150820301678469713465568084119461005429282978279943945688607990194068651129089872179549972758906868055040749426798855059928059580094407586639454511239883363378979824425858181797750056562370636749190417072160319606935608675767349294085075358120387107822043560256750801023193260861318875746642007380782620266508727214239093705182205894047921108805342053747435460781893944588770237190731076231269208968102768345025120536814168449874570244930093696556529867472332112864937234197565317396349970618294257407048477458925861995761465243483526717786773163430521218811908218939914442755342808583965592329969859309852967327449307849407262818135156992136869849374211331853490931660457992975764792325174005860037444526220758585895205491680776195996045565448877256221144309563043941147768969593934287301750281332781861330271612934027288980701135704599956373989040393337987573165395344448450387041017579424954559165218227088984398835124227116615392933393835739862155663558774668812810412177086545265715974188526292595898249724596401197844053979502607998523352434358112048174818425080442887238358867777784077663466500842653646729411485273096270671624180953777727898429604259513027820438497113590047340280060470576210037709613262549825133170914841246454251092977598240549524108467741411166338727128683021139097099618032048742011764169134006130243025773002212631868282021622235308951959660913497163874238293094579840010834509252082617347608900845657512478703645254699417831631494906520321378052580624231513815882961185269120545348135859343430104951036482109209404811081172442861148250032239772148047909543710486590363183364500746112740720360154760255090964404847019717680849397327171122248216340259267273984570821017914635251794913565592054753368866020593305583384381617552890739445323017917829980897630158537815135459723893926355100408970308175708781154304069041926061709568400779212815100081120717382681345129163252689940259091938703870266403249110761966443167525777617786767005181234832015896464152214735590939054282296094796148607384370732668395265041119868644958887629414506748497780954440963560804744201675367471521569075528426915491523455838526864125861219488710065588428754319615805839751760184509640085087793151532803341092191123921017093691766953671901570639924978711755164620342984866819787701948357568250731573785732755881340763580899736329065552714829322898265379214608418544400060603112831177961644442156662048974113562416580675078536937683135702905306839363081077897412028209577106188178431738899807841553788721378723467099554346922557839703660929139391031954079818271433056184072146180295250539742238285289828820355474066845051901726594211887920052119367470444956556560403218409140847459091227210937281150626791762945186111621798711834004844724293520551511822876145272782989749841333948353495515266180151437571955342952651060516455262981692275248429130880090484847385462067031532540060280100431839809848216207518216723856153238848295698891729310324187838947595233630398420803257913113738160665918835221862593127538504044993806448597240809068953134245890009324566694740000069603647772149118725834708273880676208976527364051106895195929662954231414819187169478657958501294582632441661284432474066108167718005159182858135252515282650556601461140184360861598853340334002908775859309044649297252388640595790518607507486073264506020146392936198770210193123412919458205094819732906458256965514505639961658995916863741143355826200747302866162000847148064975960122134625651949839361968219954579592136992641650681455480885390680126922573118346675780949515145230344272225184717873279255885290370568411589437245112492705420438626123694764418264328263947738921552880086822873914975093210536421496783907346375699595076540742414867260100685515620344552648831454436913999227562074031011124540635687928510964181831817426853658998835511675961871414509064798395768108482678863130508082553486607109880738143638812589360992933428227168624667955850217499922219687963173439086959892242228237403895839031031238373209878077880290255516239179507261412462085754189268030487643770993155752556169295162800585605174760933621565364342076969251515249493811004250656710591280159065227024391864788009540908593503339609582870444101599076637074104187878098560854812740036848711085731430559971119264425261349262992383135283324714146213359011846987980769679586770371169769051272289656288099803684119914852247286519144259721623116989425320175058479840106234777155092450560011466585354082670595304069034356538724651935251839892771546918481289163270219617072291661404462461888851733096955701059438902183914430787100055570105738940438829070417927028391783826202428767751403654177994711400340207419367362884556212467169931279525122819214749473797423933873302544074868406060288567963713184727669189096396938153151128344720514271861435958937816406943899532194715365947206445950905320002261804373069086148163649482369534847525694076214626294390641798957791234623769351244980132778054688091709074223481120733472902213623966516929828147047863079356254680602290545347738668250037252613932144427529574415210220858433944625432337981977606907877509076040250403425487606974274740326106216916805954448263200952501744940230042019060861092628729891344965253452384674831392006630118725574042679010177346370430890134287596301835729064344707983225318576977898831884125127597010382846346290818529321421177211963725347460449430106980107685244812356092850331684585883293476273121331704568482086861517626010071826951955216823982321014013221413474738131081499733007518370385981416737064606959412721217558150572422199652864784909359602231287607884540396778850772048377263975669374742327412767875214238718016406101064435831418725810858468114887962664424737088704716424933994522298616573380512456256466256584609702205459240144298082749032201079569759904930319742398841274600909744181906408872980760496801447310649802295579161361198786150657220002137225445257137794965028597884158469797130725776945537088290193956176757081639786969425053102066433648617164587539690527788612488804875118504534178458999798403922054435868195719256792743836347985148909131436609935659074653996379319524307479424132228113919266770724429712080339457340881446900078146113128893347450188701278017591064361872499437443465952107066476498894572195882339885573370431662949601457335151319946750063177061640912599557706175768963311737231724335699274653532855830209926015083169374797160085151578045046906392428353318870850459686460930256184200087212995827880470560525893153717788454168583738313317151676914232875967694751687239986698268361921280198294553502929496046961276104731246851920552446358169904840574153085601494482510996808259413116574342291133130130038072517135286441533430090464118285184979088106035463107926301898275483131118516718443822530855243765783625711716566514729961242366023958311664606297460206150496975752822432385701529220228800970763227423766498547349891754310980064659784313408013985575548520006117538602234695787946470314377066740219115061100317688325958764471107424222147717568807669949126943249180853795500222767293873812559304317805866132788017294687733918183294302999676754111340015303013910409304933493795375819664185096653114460347231961309548444883065777658476326793153777120200181918390276504926174640537225750686619580241406697563724529700294535195402734192643626111206276697198417015952905527244703783318372912691837191547700401433031931779375276730997849272881404918651129892925710084302212250898375657778287612109139868791235578534371188579710504685023756970784175348854946145867092224889359652658012060353021229792696426108937326801131528899955081891028660250741058535152006886092972136161858557473580756107104349413838979859404706963565512597085904868043883097409263594330953406091099453904589235523105860579393276431785698821423217535912995424451584065589237274892175506834972244737822113819838095408307829077715112568715575470981100688743991915307112608712074790210283160332196619384520148304481706545460345583526981725961671272059421741572819719502959619634058658956318898456668488974848287373088271230058314614754587405109808324765577083295358672224420707702362563344783249374126884806669521116563706108474332405132341886626022087334547424970301702613594855026442493162866475843839712661687732866982108854696769521834461890913702155308376088915566768411903165488436120651909878789566974956241319946446656179935994234282679207395099621591771967337694728041740441462336763704433405116854382209948224195154212446211692615022612342944280592364505258936896684156387663661761230398781234997072600588019940483067069452652135028469692230412123077761244677314117626170306559181558203863377193051076392650530124042259983526439673123311876914726097812246865695215998916252583723812446251717748505056082077903900137071527367315803997359128606361145005203662636148374799018668384287842443892485705236876376688123373794888697988284718635740650286575623965875298157952847487527281206774253198848863760277467837909966106735810123443922461186502963436936257710283241332735601141200240033202381564896990204017738750150195507436435853441893623026222319160385217034258982731626586342882260578736007242951131601090031951717428026100026513573114708779552368010025149044679234626833927966523522669278688199358343635107649285941450924263694676788078271867149026989735719283713790329891461347198496176237633388650680008421406041097444514618069957195133464874613091950893374380871618946849234092124366723251155847770307376979410109243882105122159499461469657739590017703736508261282254008992496479924712398889716191281295825845877248978971832978976750372593303675189833482669585520755068339996275018397257612038180863065620661358161537885692573000877546520908531178125832788059950240472663332878763970521421683620285874561011114149752764420765988981058751632861748461056806841179968605595192093932298835177747075579067329358035575137465536647441647635698824647841760073201733053259425196928018991046955818361131349854328660783428120941773850082586473419539993303525571230466383918900487493455992982284099945195131034361958614753140348732927510130021957951967963633889692587405341854510641206235603635345707703151964855972049036078416756650476335209002630158953047934379000640297354201015470574125536480858092426644394557266728766519007195944223603149584042691712458196190062444947547750642843216013060990677909105514905368189119505372364963809334889478459506067828006165205684107956780725751021567840052940220250502083865912826816571324630269062226794406810839050516359684592573406127082709033301897407964120021318235789538982933792533791087636908413482299320662190863198214156858514411904068290530308520227116660924046774845912122366843420978546047235716703950939602882474694473341347506610782386460941123555296715932570723647276461853486072214827930454435550499651085744348717305556056185106620359215938353290957884067664974059613957263252205805966743996058790557461258771757929994603749830328160301039582131170198352530925074432706611176446440569334653784384259360062028287087074977793942642437476159262098285252660416131264451557871023647532208010185655222892361011579138609183397167311078655003575354413156244198762090853720421315671663570951997890759207372960405399314769270818371954363497730602656345738112442646172548434713987946976816340508647975261147066849403265812350002784763277844946986705069182990305752422491668607485223935567219066218897848156008810046881724384122942067801853639207023725613087575123060610349314435992489990176953160635352023862636767473349885493881010994960928807201012179444298575265683239277581211986493336235313938937079651406246896888039358267449609790754794573602293969762454656236721941139413279259690411356537761693845855961375583771837618400442250206737024785171923523266473532049617059069506513866209009933964810196121001127910900799426565932461113740534792922847333316956479577568323509867894333594287003251061281462265306399217251039996772998086871570831221452271015396784842213093904921514347847332665145790650666463772035942122797490235918775217891095135526420409814585521368443523722362396692366907799923472396215785180056540415362867395297301756715040067460456217305626810619410027144414831515774261618183231189800110672216931497480175717091375726938023439516277874364265790398212431876735495885153198152712088734464139249626885621840220853054361066514808303312433000393965581451843499489141049173826235547944207585813549574443121613480081477832831540906239878145603350668846060040322366840530518179439232246085812161308514742160066108903738844135197375764497230468088975805248105376176901590625496291232301270108007131497908646686334363993371113897047432862110542415227221588048824315456750505853723481698841505085982429449724326431990947617234438333749094252358520401886695897653492561470457870518974549199269138657571580300612304794505540499450259120077985668392008739090180300422767466029314598580909001998890083336524393213081688497496868727992539292248576520308382408519083557949971626910766234472658548733379697183744552265759391008241392246813228350012071092545650923070601492313486230008702919165087515205323051129140571797047845149619760301589170594097611674910516566759134619448280368832294195275439574862448656286505423474486273747512402980792047760612828741521776425873258748054941436700504675930615483348770606542070119354700412131790688869637473449751763536661411683903598912704931141631324842548162710494288129650712665766157939946938057675079244308590958425135898084123699991428945664517057780648555478832359739432756999500955854547092522331822488255464511107917967802141437375484685962450988980485881889415213353309255508886780707536705551006470152871476839434794628318669351802923481237606671755853919206400661482804738308662031200210068827762519202524381727839645185813706808594617612837574871787416965523452980316624461055869093507057579476918174679709123517482756760857753873190261355429262578813879805451545852956680872367723584993125806035178986130573919096519239897820318600644387169931865837667182908992632000042267241347900310525187947058172380610170067067227052582792896080564586654089548214193772782353109863366627438632593255152900835128205690038574893839568354882095900654581770475657707384058248886339775534186922850341680338339935399969847267231373861053766538095574464890237447998573363359119884478600643034448085181247983263994126133704778342283355854938570862388694386746954107394548095956923118689404896702834987042615798640551026973468726634670802152131937607226162608907205196254719822141881010786967994555010159396428973062521218836352246689072320510558337383120148079732217331340239713644267160131979966346865432858147619032022703581001195702471535350784516001519915656620695804669431886532311652162702607039650775387890465856118468638158580432990734930464656057244848105666575370966904868662998369787985198228170144018371693228894620580655505104728393218583273999517798423636446012001266208541315733587355089666841995142644474747498319366026339502829134409108069996660509043965266340259741843646611068364421752937429901220077648121776882178218152162596188201418174904689092666726477662559181738928201021977427199472655837869326816581293864666540896942945733555408639887875399916034154973033679324217854486280104589994559768969274146750553131309716320387793052680045307213380405635540970244424641293808331477728248364409975450364893533812076264663528746861217531103515378126155065344795419298557909445687933119794855483722202872579347972173171891318111176874686205966976318010813846828199491943418618923368153323148799521572628721790560946017052120387657270923676698878232287832828271960122939555075893339632406886582110807004232944457989140867563045173931639742075921553471889299397223027739588952497536047598829615047167064654598555156043508916221099438286459871360734315211692107410961699054751313379056517022348041910938036351281657595617522563721355024652435055096171550128733215189705026641472322107277588261845880714133667357140319670271084677943464121191342452800801851111637991496478334877329802077215600424832375579931348140458607105311073526639532413658897123324206680396923103875294701602163117608843153096949831787469150261095983370734105963485896120489044268603628033803929728329891337640633169226512772774934807805660017281913716819598208535575160889872423410030491119421540221182354677930063514066113816909354835045830091206042107949798278802870190547592564618093521093680134413542660437858912550442338100001648982348774035596533077231962160541307302791725510436487052978314179198439522166693586462666764532106055741526916416470373725027807260588136638884133178079598943656207936684540035401136494131545994255125463659590406581234153408708714032172674998613765458772455075693461351462996904022372882777755114789679015163893754763601683725743313232032017416204615488524830469777188485452296848619252856492433018421590586543700714703789842954893631588020966921241880312106455020492382326434528463113061919450141461324736192024921871230558184889941739192452870218036177103507677091711420140142526935557276196429887637178481748139057820178644057814877443905988820477338268899706382679551565259874252541076439664316878845372786864536329157112414441219503770226011420189769075590490678740385077524941614663051421373868662715142620820531731690142884314679409877403307018028446478586211172133571435253993630081303013345687240115284533376248776032960514947010470811691714103386327978873578843236600542645062210897877513980082926410280805147097228635326825557519578826400146186359006561936445117927309640037014889633584096904356274080827542442505233780733091532399307491392899769866140763364835717302216880086115652937337831089348879427906203931376396177655130114362746322511862773141100413218479778989185242283320329298696469179998566658237544128024286445753261250458664251415984062435610392708508350420367209751905518598792838469015942828793302961534927813111294546871706611966507620236895104940410921725639426849711795793624371402804454650868879229535675527128398526642213857429159741523239690933662734484865073530006228233713422932890040510401047061270655807082013808044519826938742724441403612165194303679563409826855813376748670818839669224232852359963964330589129883607526605148955748459493547704955983213644463778816139937914049882047814919137286795339859516311716767678561945404529016710365089150362091143427869646729912972393282286192608333506394251053739019016500074207019455964638943523288620795698446481649186199050867371975290348319652410940564777537186482735779005140255571215767119355400342272375185232672865919940326551527421802578717130773131231209572476541783214883124826137714523042676908966390095262334201007424335613821219232737627590200519274862446517810854918311334735875059386965732877874752237048609571262097695633409415469708459291086919790021711017643675895147342406059567075308652433848305176126088214108846521769260726096198939200714956277026223834745568941789248830153258357510507033618020481876842731525931365980799329751481749319319101262606287444409717626393774380226698773531965051745349331092619138535144645702423223258244490359635847896583190202537659618533518353781824146042047718382836014825175561471616984132868646933322364527198868586507202030137597059825047286257621509178456223413930362202756852541114223615452640915554545902216720712982492147259140405525265597985081729025149241032525404695042262022831135969622949379083847133024512769999967949044358811045805312367866985318329844081839525153754773825638133346721686858240458971533500659185934574135282751756079925300665557874995412488463118670282314091403866194920703050387029527693559411449713199323095954657373170845428471466988093579389229767098314624219688294379141652642301676266913326846586262774027140305664098703617223428504788939586909164480375408476236675201041498695944572221637087702138092941065883188330500649365301189788622289358485385685456443922222559535621302785066347271115417153640375554428637480599249807413570870235934240112578245393916621821763774384237221187997936803466093149896858861094979047765927847702086309651938526017086773487933906638358326181958301027293198502280603360602028937032861519446003972841807081344183942495831622080124214654097308515980907539715350661454060323838533461455247408827005519800419191853994106294121146029743751689727915508199827794951716806861885011636725868396684093703652530247666814181883999647857659369909682334695307566292885811127372223898693489577167992071137374452514787200820243137432338262398326199242531004195215279399175977653399573792251992484235126544266966968708181029554850586101639556060430384022600994271208062568643536678902982405273613778676674231314093886538502219935132498352105568055680096347724189152540827244786285786569595916289494707298437249208566584502707906220077677042710154942876169482470708661714287055179815566149571577209212965916224145487329924713622441707318210872667987290895210767739305157194135639556139472883896504175319117178396856178555989460302087172628875280987599352643812707066852698970588747228729391949291771791699084797600986538721157084670500727745062950492438005595590444616285167587894126982644593453043328055471449210916073522680760607767428860598730943791066552194534317103887342221983492384566320122216823909572672378205734889066881458546394488318346887239791252854453731831463053793563244539735709491281418196381996743778605350730960514221747323777226600080119034520323257105916571062273375997070242371504759752879174078702093066905706193345140223527079482240135904160417692350362086439303185723053102203086978364180788394815266368266335846546787871513773849161078122911376128399420108060861500624755064235219262656910776354078683620525550646514518937656560500786434772909099835011897540385954247761251964086530276116585791077666959148795745459561587765369925763264201398241139394495056986560046741072265370466739600226640845685166779090752225825291735041154580712454057921793042578560710887059659076399847856594482641482455142411111594328551380233490806841499683393837600593428975789673580094924737639270390554444329504318867140268059128123452612914794295267416185913322692667051758328535697018832237978247633081783536826775407939721089204942749427919648835332762615403402743108367579860792047892376667510623297062260978563983947792519583946555114606497590112248093650826177259616954783461953619863322517443179366512016258740422756796490379189011163740228011226137152721979960131999132120277751826269806575347820994117231617898714594028260120366892038119819038247518399923213748594586156684190117467887713008978025994203234327597464266647617278422016694639055891650017713912201818538530176355109950968417754435872173428449339925269448710500952829221808847482746961870489331034458207393177452031515647146671603271956946247090659135394174053322503212910170849609359179747150535467851032334071194810499011235955008335848227505345910186583091067759064162413163015141247385951547403712680397824920790355611675420009992204827251010752796776303683907495902799267030491238710664315104750352344949446329405785211905776683753373198157451292486097972887035848159369271693573249581965825745070513796018113310616011598142462572731868775190283025426089920919416333130782181113273828599925135077683696630234435338961243211482676811721695171640771685996208021956644558219579982597836182315580972136437977267663383831360960596480934401539771619104936101193420460675395186735958519363228247139146403866317061663421126221340059483647618227583234465529100983604421883552411870342210341823719014309410476192306653220621826369302098657485892152760313150648241832586004235879008394417938474246077997421039806855676930263172642544224715871105361432422319284479530368256483729728082738995703243028752358695590894376338703250638275293792008468015193499630383653231673719690450296462629737429699122830585625504403967482297985232409044806159079497864326924235990234585873754890029250205334874005267864047033493363348259528942444829249189519738412562775293568498198329760695812636038694871911533406064022567867943953115947557506534749743425057050453357216537200751368390455989030862684410928093278443812964189219741248694857015809389424833969645995620135343735464523122039116281345483120666298522751402623931503013984653706289499851794977896440701096294668133896230645791481700999468994082688749308191076102625529826230165654341362047614092644978742524788747146620944305114949591846901283464917944637590463651545784269090531399203933764560318232508766583088812392001260657517924673333585120669029770608369650313171096585348771931925242246728734928590415874847530483276463801903475828390153856819420484873594227927961038575465817224355241555185403414460756486724795389994771252502016944294245999315438661364706902653242256776855462063556699609525635555177144919508686760903161140099115839307876629717702745892934598736881147658990517286839672936937421666596365513297330458854593626803400203293828446825071993205095544285593892071742444196664922297113922482627910302334675123285932694632803711863584571889074568714559613646953846364828979455605885151990564670945355984770270957435342258807874524109737246794122440023662765823991724032754034836773478766523009510627785798235287762118181073397556442504127815661882278468487628686200745360913141884006877002508858103052009747115289635102926907686085494982854219876080882211960390717230798873258761509988817428076452877322178855174505008235859501726907066037728999691549542484522289706431951520586101171264542472045699012867254039313558553241367213697470009794610633558723657920677321747491095225087326739438829399280436613466418594052684370570128803135095349941336110315020644651054733341060588129237515653540489416744793778227358547456979587769985211053616468212964623830515746081167038192084033049604205239687686413585615797176230946309338876758005780312163336883156434871897879972895148674026268665778746718818721020741561528142841732191511286497626844719026005081723584082876800447582985887521478060492903797765073242205050244498274730279578545615758901516337200915631349222578489008281226467701310729472449509409827357652332655661236780897966926695906949165664879489320309717799341913308227377024393488371473070409029001238506094939442210219700488245551077427279452158710748585448055765796558676899218868352818759566350018625086410043445871970023281481660492252777160750674775552994231614692503562455241855290400731505527207943608352079162511508291769685443827122526795836360377728791412533049296905460944899462486454945841903733269064739572634106229033577633106987692869560874209849754816943083867683085286178837046436482626124093926790849297466487207213682614795809567295524371877096089013516518448468961476903690236660141413155508561615574166020171205408159185638608236831169844015891736781240908888521314710255454647213933500664407262886130548211747144234313835290538330743734101649117502458076519491956545354703819641314902175829344557144324267030372811794105257361409859895911329046750919332335946999915302655097787107634035375856481399074354774843624820411013922281761535653560686363661862739429296270892738743719814835801587105444648393626059663743102419275860108521458950548692409761389611131382795444026849980473000444824748729421917825588373534867182703834228166597389091892912973676356330708731092702273176431393406012993432700855902435656546505313349015071764842160256295475855656704251897753365173442483267308113007260336717406996406963707712577454533386324181191361783399643748039833053531384400219207137835383123340257389802790104196231968114591376288642622085735263963300478427481521256373390899113644661114554347192263956022434640903609319957680421720839644777251779556871558357952942279898708663883291403897649715980446182714130056874441339669720033822658146240229356004836512770797455433827999676187470049582031502980657704943430776483259517646426951328678107802357197789273377214471836261390663255255464965209169515158665524194080413237284081099323645527410093461026443728127401839551959374695812693250606019099742403907407739841678543041363443959980126516085055613668103316474909932426263264077186040024027618475631024713291123983363742147870704207088600112535668079997950369967010016861829473741392474210390747623477119325194289202760451380303473768177801749026949131511376071574739745082051914160118895865832446782993264070510044897705984363088260962304499088196483851281297574731041090794402987836217167549994241397644442526878173928067902201271063972331027351384499229323993118179852836904110694421054800573107695114251253806881075381789295483870069840798220110158187548727462122124593651348748523259039071093369191531772242063917625925669854046266630152505855209395600566146014518279357658872885234625997461295147498083958247091788408632742903572614687231503622192753415721542141975249270750811308376482294590265860177865385615202844888643343785717472199420825762003317862912057742445122153944429697556835198762028155011920232413221769873572737302019634823730348896403663241076182197942164373762487421622775588586237683581624446162957121331132561800630395309952446712280331511881606417387308693109755562531443091417931600340693059274759935953824483979782711734077061980503113217485707488393880015179211971811166828902355290016302199600049117213575254255059911406069060140446278177478748010369236960171501236003779123979967946914314961997410533558400994082589477596319439897947377304239341838398807654629610962781195745721756181266266685015872918275984067889670252946648658363074495919716076570174186993371925425667524738682420431648020627428289085134266398975757279777947147634360310342839109466718291912458452354183597860699797543139250704097461272027461857756329085481351130969256906993794690488585511230569988304207446576071029360926030236660491385636752615620679256858038150427058993783723613180023008603430881844609888341260230985835802726294861442418167693779190546645701854079674774859087710769464392753356069801755633837356302024249509212201580826222848754420836011262732431211235193405200409708026804458995637039508602121752650954981153324018293808234078719596814140608506709540046381347963856632849715291321502027621292720783613755402909189885728567418344530439755089945873505285118556721300194948487659664359367609668059580923484278167969324481253901849986373704732793106773300284200165129439053924932360231249097214163382105653384024329116898034578342707398884721189816207501001910249722968634469329150729128703698380330130356193870433650446575980096774800781490542498329420805583495045995001755975103540216810038940570054798608579120266307981015274710836871544233981856906688912692413284795036873280721074743566734366814928473004756643740755738838990316718631496754845436163456814048123116967458193280732720350311876128356569710309514503922631484294961315512357265497118354819080527867741276897759736232968847207261346896072205683015429715837159458830363815189491439065785768661230936248572165686265429206283952797697638926729195253563829967424669853090071384483257124178805811019480203595162607143263203574296071527288197824733152843003501036022068914398527584675191986954906068012919557558069032657879046370977471344133607256139613987990919398562312077118786826273597509670347199040083219960220329730672727188304268605302204319637853602447476790184681499765269712371372519630732810971417015810032557874979193371634680414290256130436371089147241635566713013339835249376275041189508160516383327863229759591352166377657761891827905425819587552227829243947072831390166671802273095764885629087641185047648124980765193162266468501068886203709763014760538137733897008751915059185196186983872266394032929780046340853020091622349686581096660882577260905968139965726040974493301385083496522484454837977211607091486392373892138454162183487198326191179621330850465692315520012785817035558606298587575199778571026956631841475861906068165482488041281167746936807193641163920780780153090409127466398767449953865705030035959955574202674500478458185827442184966868852880615154197515782786916368982028660510706093886308981876286554366003009048010763877899403592005452325906464445652752780485091362783474938783392829618145960229727502501610599887067359954136427846393566468883703867536748440489186215942437911250501883578545691541359416938276991484871014151646338686921091506314350358356013971446356928397655349177250232173211874012864542746150491342555608640780924424981320404414591240239362753317800901500365256701372620795294530250820588004918656966851245422076329714717509909355323459962203889982174885447345970633841808113102927330330362716188757132192920623908668474670636460103252536315821785293537013530815871569718719098704989133440282764595645785071498044536731369108157523045657766115835687450029982994510390208930436538629990804112907876621500681756565118469784141123311805919161742386190975858730697716175230539243549874339276303569456813480488308263522460187658206995821852638542379326427371064089675473429339056656210663847965620905303195398301064234491173803287968300960625599262674030850394598742029335252942351200987908625100599812795921003906018602686618826706294743150081343427368144720841523127033662097755706239046060203323547733319492139270701053115350935383741983495699113870102898543753248180193218682268019633339462440922715327092943658580311470212175647390270370309229615265797791403879934103873120607481639856163766041473916715713943723145010949336670207272028478279782448725094257834755927505496689706643969565117493168179364506869281543900989459131319583227743427701336452660808270246365334778505240902178578125280783528273700635093437480959477795047393871089614878457493294696229950075477494912903655942733439605011611227565306372059504157592176395562910203827334391632419273007477939246284656117654975197023628620131082748473576389184783092218408933152905530581552768715943897213360175388183746810269681360454762190139386507683030280856689692774331375601495107789427138547937534336947083221870444579418494614353003828291234676673435204314480515993864089253041213460602584169427695059802185528691199684440876560653487249746864190782819116305841598794343612415999920087516421976571778292902274284228055191775188970873724152184162917462720174176949027254139415751427026556707063596645948546227912302437194689060413677589436580792072831781784038928265910293030296700947001138776391829595319768031099682338098652444652541303460565076370476911610713433512760556134430788433679655838955173912057099202914575104294686580197146132960578243249460375239423814405846316480551410061242395739950630188825906456335556476779794843193847132433025039488149906336413121334640465354948536598503666636122756469944972351041263999210718164885726257491154561852535306250713353513219484483312730039891838282246377617666951926329853924359916709588281712950453862430666668253296161362337396038000217578974999247905498449815117053044880483808699145694157073193379926711863917268777244641846588072182423831342314467260976096647378287202974642379056889578101715390108404726652515676127763905847937765512267638807629325416582402447303638816467369765652473928024717557619210043916773998516481671124380766069869487163935952372565178574106360242396768628498066375719701527906266242847936985958033156083344168171712901398421329167369137391655138112779409331581332446002283358237550920923093030710122554560107542190081670107599383058164874335320453838262353098652750802506934414752684957056122505434442254760351080639985699647916737268958562324787577054195350453471469605262067703028994692489922244598760003978477465117622421627127051041994976299952932411998896779025355191035022333016221301400130579467199686510523381803945172765957044986756228413762310018202023662059419637668986849913619537376145251398646670185472629728473090878509477567901984745582540834588420812492800197002858200940872327825423781425212311693481342995234276049921878860561097629159916784545124215349124310536734358339110891743564994487066276678150593521227897835689604439627486274638033708854159120889435831803183790733682464898449333093132447606703221364301208523833097182919821804578788143121711707828726431994418143477553141636064528568226263120360660639830180467743975392999264819236303216295750442980478343496532816614824683893775679998353296767399667780616565262999007925120873548225112703558509600770220864701725077435314993449290984142203197803995443809809509813763873392485678191059753393377861557533331075274167750004628091833958277358193730362078907507571835489877277688440506051759245405068512088278424491872047842738117238112720272855093803541404864913990194400457505278905311763846609171580580795192442715676646381960644969154563458233105186177119723586654170326054743854566960450151393193831466253809007682879417545953107965146543301936598808106071483602497197879050495971919212901481100652695682113405533424581650465656321373768471259306801237479584927256674715727715566148090562863162265185336222748758257884480688690834343532971165466663796087072487848731546669874311962415219174637768704181051292053326811847846644960233659768496299599521589463131039891392302959787052351438534128290544668835659631921993685552186772189686403548546650182704514354137222657025687452383554122519630394952538777911665927665509430445398948997648370891226025284470503348422665496475019595004283018971501420991167048508054836009253914741075486723213268687901603174071983137205031793176004552893584822632473267707952931455355096002496337974434143660052228894163801765853739879612365423329774864174620179204940125407178189554120263958808180990823696941483388471623705206354185099031581538835282225449240290268279202019916337100952907959861330196454064312991370482133216964806778736036477960295049345012802831775181207181447015652871504573243127239011783239519527972467975111209296067015238351526345124260753560423463417771516125193907359408112937782642115019037562716540287590907617012824494340274640064288721911378765542640674560363951099205681203756633714376822852790281587775468634580530841936794714531470540681586138734726263596070470571678725091554106562384616308342823495427938102909153680190359348365414093956737650269030670691030794646491620786905550629439177356377718953917363469258189530070025598460926072720659925283447228445788111856769295518260484970160647040411833463268258646431012500934314552293008076585191220303177779584495544500354523926652976267096203473505202006212176390307189749257416838237457202846829657897589347691186856704927782263438836605356083353723431709039675997310307289690694889675204624940842482328960745668266044539005254442817491078932835008130753800915657923867042859268075150501807837574560631363340146859099851425699352902386885610923838595843211643942078448024148376857320873267895787995989408503747272692008590356412567008654482190855709423095439132959328875810251726503357433174066941577572071346532687512307298602366526775545114690156107894987160538968614202483070835300939879446022746077079587459988705377347048826727721291031263983321123833806235263108182581281712626977306237466741958429646551456110583119780810131204060979807002990560227669665416827478618910107220920213346520569788615782861240849679703260570049918126682004918340430449913222286156275469640761178464846380733183771513069676057082394329394200730375696893106113812558323392997358714657510677747075170928802890496172048587893920157231976518549669975472135545149089059913567435643469745806225490458988619048016927988760553683304803165717507929960778901692190114809322837860871656519738631993090001125709481307286146898352432194462904784056996472919823249056000531367391154485555563680579437419044607064064936958787589396844846596932782323110600237021414728780042895029351445031423732392108176366288834856742511097081823784122482409652365808249535723366254357126241112373755912232124346173421594760236004420875806574771726044204100037129240284262211462541211080972748262863461952657355640539689585085764398410166243965077509297095477924815433980805749353612519363809084600303298577734136491729795159171590621856276432371608368339295207362618993416290239682732088910070231741186084644267110985325663594900527306817762584124261422490349666811542253249004122257240801001320465695661142127312673564222523455087431187940866847641956917899985388400520703823772555716004344060754427437945174629491759284813817775133064366772550399562646189772775443842441896041934267169650619418716155349095277654771320062694269638122193435059636990510547825021247347881825273385509324795105135226411744289100991873358882305807492158361925339757898213130193875018809990041200968441214003504375342354358705097177276057165497586411022603416522362302044807721445680138747205340526289034711879689294737411782230624231714400650042484649475751623989951031610384966130000976447044447032003328782403532964888541101316184859628355720068455389184092387365655024110038792037873695536888894118136933292185538529230320391566911504469908732020990529792712528883140686991354396100760341701112150506147886479059320040742855494140070103114685313352109531363889037420330337564751720148597758124124679525670825832505204659099075289775697362320964168966287557930227621477764208488622502357320397990421144470408239897510957820267350926492067400124406984736312971004687177582038522660127744654457216587694175906412987103336877988195199937765024392404201907220950519154829810316400994064562696663664563127879560864956145374045815898541717950658177851080439060729232753601488505516061907149374018880087388721786768150241059794984162349981390934153490367357443531367962849616200159434782051345327358105425371041352111532487526423133278596621217825936547062200168019409298500040147249220937462931047038203849860947678590631927164022311947464701725740096364251277018172181202317913030598852484110645547455853159583079982726703837981855820031766129979731668211780691812704182241393425546431528623435493225574344424529988490661654348653487860261484745410522447672681863798888822395048551452606820185854974701951991922265991463938126209507008997857920639399114028766353085638870999764639268948464680743607677046517013107455447021883688801620927799565529436988228382787488910260614108179578917406799860722245257046739721494240925422276747474085299382592809768538385417080998071397527155430690797712930023920046921635576984986980393598690826734121583460576540533854848973984361044268229618861191171950939210897210000947062699719462119626947422333648791179113902290684816383328990800586432938190143191165075787415025951253123502700028330301036879067995613795180866548511631943509257490264660132822689756932348667964826363132641693350432934841829073035585038203611240005196635880710306459409013118182002424736093802566036974528232884238840929769707183676939033768799257166456212541788958526566274972520677565242930387149723014986771725950789299372260611416635045874812436829398134152319711858319940669904746237747393409492370443368096529351986571525944788569579754174189280153735020409234495432631462659684067125048955371160739866159675682232528026887983882082376843579371158961016815709679124698835817281954686671135724175604907672388668202767136194532495353401739819472707776473273017346821986579491055494019323668475206980637832999084660205770663972586609571917248481699036753985403541084320246562616385198286166789731811377926647926558990966266838871628815990557239702042764831408361328745722695045863456835744420683941181755765139322756001373689028095331457568549808975294135382560048360825081326568690672267037570658379508545637702297815811645394547462521887605534059234332444259471059953314502785231648730600274670337500597084052094021643503203569267094592336469600280490769860709068094888121219876440647516336082397538365770742574812260721982712548320538956816308238800568098785558408924922644616155902872921159154832920317389125467326051389355110113093633232200267870328754714861033042830489957714297807190150068401660451133434140065051196129188188562914523845935995073827366246050460805702128146900937181344900354102075308591298797331942248974064597233167430615767286408718987206262125684907724658399925140160431924061264438522006587254828955522121191760293604778978485938704238317332549620979446397319563894005872909265438630076126472002064257511997863415684021662509563156564814999637897990108073963914157127595587585694020951324578914011565112435173345264368168198259167167811083507770854300789762626675514978342767190266816786330721739070677298069712774618793469973682006636552962972439417605783584929805696057099585559813152517326011902244138845310919456328026332717020049446923117007766752769152336799305699816700167762381223524500423939452447257924418790774631022405530721211329898348055738258850013341133831202641654538210959629240350302660663321486141538410817223591296068477573433653071618715733432611765536610999947467655317197073319436835669277269252274466270525591124934807522829170260613658993305102631935680665770371857324426868066546271277642828902509421703208045985570973191568018155414568381504995260027153148321707741107447918058347391951606115709893018543484832383578025362060302679758009740529823610384384848307567489528385534704270924424947175499821423812724864541497779170519617791009765905559560565583562295478200592406425409926750579325065574651336694327257222294715059634642281572150374549755147829231051971799910245093980394073065551363399535813747589692890111282907654599449620652143945602826953033561138516584659584749085993307517690024285412861691045084312347645045601312688737075989541841700873911228916504184869504735445785582336142889306008027964122452529957220998865269872546821286913640360222063077569466958687342831894542652853108146993443452508675198616688029519093227812048534519227297195312998346905052836546289678872890610753176449293590343256354696272170454559712712018019855094590698576855209361833110469784695446867508841526380834640733077244605052477523033048820649029680564061930352806333382276823148995966031211757785828582983319270911127055540071437755182346952001375064114028566000862964254137768086137685486248148552032060139774882422207182242613734904929473611665959766974778512252952554990201781577266140969468066792253093066186803090789385245709179918388406618468445076134410251965637283639830647697552463201766159320047648251224558863793432813216914704654762305677965680487392014184051996614283344736168545475733172861692623034533986801447258883582912252999357239137888862234984632576000685235055202099319901305040550992717455458110334196543000812491002394456913628707221586226127186487063533437160465181229888762779192184102350183195782641572909994333957596998870849767337614980134687066014957077681169884806467803786127864743270804588213309351513810781089163661525812437910592730999683921724566407960018040009597521192797172868740693686901679134998414526341036211391132666090166209020380741602951026968721866361299337040890284487666510167789748946952125633428679355320448112713195546753720104235086464385145587403245511737109630077423177860623640863023908910405601717273404706789636177727262981150682225205813586485039774703730805746789166270312515695052429450002006178444488483899830909979684667336563262594944495966482262562514871002668224801879597747479291449784150691486950492639435713230937065972424938884118023065301045839064569358971864323323861049587083497363788870049638189737073526432188976026526604107244517482554179783734019439785956773948332233841155890392998139731116436082420831821435486385793473772876110980541587342059118565120225939175053924992504595793307403826862768176242399322737543296269067244867331944483251332463267025906851850208197826158278586510416937575952521436823397080315004514679172995766771375264378874617830108786680227310432692539032568520070190945030047686644761723777432325153781059855033824522424943544617020435185128404485721658222846448430775209696474838315795108598811212927996005085751191335877682589834062622696243765822271685218637844098789051941525901710631437345883513442892993583299072429940102732515742500223541449845442176285414338900112826418511928241423677813866240128958479546817576945525112470573461817558953657429153316713110371028395800105823898403310860090407468890984390111784073211188357132428506189578894919097030664690666187467132621145064815989537388234351753660125285902094790756706927169374231470504675206836954268345441389712869301590981438103771292766287054341289007978082320224030435205382829007734917634447271410685837313165980628834425804582216520862822401954074571589999986104412417054432998785281812726879692663834642523770177916150072547310412461477613885983017876501042773648366557986914107516610969559246075764027102809283880516055649499092014143510947489028490591053977439088208956285749137311685310516577423777656162078967616371840963851546531474121420776176642741135786235309797478157080864319981822927375547938081266284601640513862867123771178334058358272950052312200244313666180073763200334706975328906172254144327124131520454024997272236743269838586021290979643883068284366906900335162712248772932263657173540091427197742935388996543975217055695430568344438758842361457950255600599894072165551098633674781218390109710430480126258393090909079292934761808775042891659517265411928106185611448344913889822081224869324680867571071140645586218839416461171381380055525519026080078621049659561694355150854051332387750673932618849966199958179567222856355511749990724024232987579919605193145872812924113728241597443051576851482352498634983743099829574582921419046135908284716019541424336460924328849675639275872122617150415601799917041290475009459615130403371166742821654793846171750132089720185112636398243909042389407579985050647703833914870474994923061783643767039228541138854832559726455076851046440932695456987144175386508373017023543067145118958270903542914790273050202428106138135307495036627572115053781300647324099506848437749478354688123212051208939087633461194934482203751192021303632498145055713591106347224543496689903647743652249940189041845833582575463383934610929092914331757090156475470983702388822840652639788798194515843370683306303421636117381277834134623710056701728291601179533924026092609879953105699325692520769529612946076314577478278689763288723308163197042355222630464084266678133536071202382520378554742714432708049733383348033155362914683559262876912740562239367701528600266829083442291297889107907966673121385220024139734971630146494003077785756285775584023050946223277448794222211313068755201015924073954268305896161341439296926486392771255454254636594909911536943977697910780334658769119298254280965601964173137667707282255926383442896564847820884235307744700070207818178540614718202973070144599948193046856464574354801809928808867391652468219299027519795218798114326989044412873608295465094310666226676792878810955846625100491016957209119699237412784932917732265156042094521350315358322680662378311306609294279989896128093782356501433859317939234763040370140546554492704277448360616694626947024572910073085859989822416279721433262528950309436185905547622057468168216294167757353214166120442478331414739993521412184748564053922375484032131211804063599453862015956897035379088893057430779912172167996222326167332109123172682403468125435629831557186650541874381586094700498058098278891942604912575364789536008673741541511875711507120466551750662270268300587857169511195243691283405021245429927780028749110830836309352506878055950457849526324414167383696090141585980982462343890735436512405475080637196639192713557489508900842660204576318637464599345382045055103282740664937984160950021985296920586489893996372504113746196233023108445512632637146538634922948103633168070017313463036758062543951876630739120412351486638671643575223024487345544482988523281161657047481567304051218243257163384201022866593618110860201239045003867015596334303506169461019533720378264979058392939840598124691211439263744254197676676977735650431502945544936066085151840330212604276442685788176084291221503409366447352529788843538297558292971514450385448463477020092385113169110285449705500686401124910632733251609216343447309969259612790405238709103561850766095779794943786979982507559454118903563165875202907449034928020319766844702127630122031907559089797270612361963442535971851014450808691404851690020387254554528286411020923049917647570975655438023091478630014504403613607377351934221006150547848597302298398625563235060021375613911559763587687105301736849845211681759230600138638551004468160886439016918411072420525917149242660063592549418723949097199042895649073909049861886857747934224499077393249538899163929754156704059177533172953183811610596427163483766772501849255965952595547487465468299784971482205446213711837791563401287653411057181763233338613453061255765101599112478031126648949795239389796230611709840469292912221341837038172519492095298225347987936792217062424049492102287944173217172803656889619314033984170381793140641848777901944509070253565652620801682116136661049862762370761875646566046066752114552678189504475799305655377403266224891345214749045767276952061637518874078114818431819037232585009912762516295846635810936092176520779496626073547839857769637647832684357293936930042582137665948332207343795758733430864898893923315901401167014609859048449609502661675224426127252259291207212392795945168777318469176821931779519673813518566806411152065527967316824899657383937199323779646312396408534586924472924975388483451181962011163593941277846022058771419848138349115476426641693281442844452855971416993440853338545168531131087556946809395814270451928668110293349528389682417364019624588389571361200088432223859766131040790180311541834947643395972811373909369312068473106375223575285939772829355662918727338645082655819483272311713960123298806122024053213698284307686255717231237230230485360022988362438983200289136969420261598424893885268107300252959435523390412801675046909119134467626744966526331796671358405439696827340514625547586975023189069206586613275265013187476635747897491122605312930707608795563791274023443764918532995395581359086876508682915823361861087583191741020313376158226232865697879963274490729780523381956191643037082975493283848503200348755185298622030233540054256029145990710383008129278663917376630066465844550513587152368836368075653259424967633754743678781261584601987272300597289914513681049236597940359179182942479447956310127808365035118148230108886880495933898899661915769890448963028861127794247427687406994980386711726773161895731293391999617357351471127410825406186119370982136974180503534603530092476602284660122522998416421271142932133913508571825989230043250889015574831955323065284914921586052541488054885282611385600083642163328255657852333102521857333092069147539270931709126601108189999308930806985816493106407669184584673781105547461547217334911757300085718975918857012100567693273834116127781596477840714930171962411549195653862102183040082579054204087717133494601777397493523738164100976362671732825838097019745727720717159084121154584958509924504183493349211105291593321319299596723284267363346028779467121640183091124624478890984602582424160236437877764348814193046726730263648204820296076026122190318441437250064833390197794437997768770932311735872312379014818233127129534441019903425222511942402991925963010408883876888596143650950579418152851821245749270306174198668054418683956472696825823768694061046274261179530355543525781392881689054056647988400889957332532384241793644291798984112972000172627438649479677414072612614984428890204394268164838736364342279255556159163803062201671880413913678980923551359951005557473258216652848320486840457829404168501171152140086238347193142924407637164592219139290805966341675385742088928083789553441268276780448493575598668404682097469398821684679117884063359489538035064719159198424419974247856282153506158553757953448464858460974330359420320099826504270605539919598258484037258004095390975891709272722076707734418311119092502791758329086475160931551159041223669157702714246572619827741915986484162076165456888027313861134591401806195911344939290527918461422720969694392825676189746640508838515728778161696995961341355616368053251649445382555257619640189648623603246609902787480641375698090026971728889385845164403017097365979491251411122632767232210431386952033720721416622401471701618984823365453090375256049182118957062366811406976888950021876435886530823642522100456726499547009795256664878575936206825172062873193750573681981982003564376263939663718221581835271048759897409343669143606501882880873128275474196570276752980869553239932083909481454847232967472279406106781024700119482649272670677636390114400603614048081265367516207621744920973717121747341092693058662349102735912090126072905311801791360535061458962197581878577649418470723811132138744737864994519738796297752691537356644271821276350125466987180532437834501891841822510489531471719650580847786793699709914430450993677475836628058981807477228648354935450102587022468007211371590904260106133127384123480029715934273761003950687941954352904375845119877318799390571842646903450434760470244315906248449677745964813042432741782750167543232982812861767048672002585809946410576431827625298827713623350224340937341996933180732544816101714022887000990712969871895286709746966598158653624655305548760568954691712183056787258080018430931985188454968190810894130412584000120022973685133263998086857790376913033974303406234664274086898783479474065376374728153275577449809512411530156265749465242489502815137701605305216192164093740678897594976589988001271355015898286030988152223014534397713358902403557230807450985089967108148475205485139586277622787269023963473958751859564300078414288255278015991695213770538982320717319311466211066589979313463028780770417443290941370790408722035152821428139326330191354958634365937317671163890306024547823497576637738820720130367766977908214914318118971700504536773697611187307128062166306770745677144808835209369648104628268569247774969433162139271905304373580596155015868136268893488179746710117938096124672224679811806446366344603460398007421277109266345755158751384904909035467148700957641295148863948976107378312999717251537251403800643241521951539155954822740351055874452765011518533769743872260114293099764291673913115761947453597668959706784003097550606346466579791647109581593362726294069548741140793492873974059687154927446735225145494710535387587104159817587079343299754826500745289416105035924213538232534013437501962885318399417752709851515435026777324543598262896626066409874363153022673608622862166114499708614419019150473062934084511546062808977915801915938663806151065116594785516536882297512261320440451530808746935140589375791752863658027488376721843888208154368120502497042280210520887253945406354393804818515826112075195927862129069101386477022567849610169845393479017300078706214099140125044472665518883242182988597762990848559686586143137397587647118037048676769486874946612363707502579303521068663684561826480938013076897549124759908845578284369422128138414339589902684957742998792136326835016181140410260303628222473997146476999414781452343229511670064033905237915793116804628611474749382501874468076126415717566715215838856921842796351519253635873303924906987999563913421963843402543996606478745258808775102825536898602499597199463484962758596171011443925403933511082356836908392460656735102940309872692405023052349004062468990882243131343949070542415382545398300190753699087074401622021900073577244359822606940838553809826713909305480401409315628893230382009916914788527425305743647698816065745085142891014123409428282282921470042460575144547780414239032913719006142282826499553664906333865557877302774720884060076631489453356232870660125680662069167022141327709296926548630410437941464710217964855395799723954825321451938238189302499197107546194388995168856652240620348636624198179312458458325964145901790382437742025815982700006180406738230032842773301218119608565746012427318847551949496662390081635412872362373978287527826747380264340359149258189342078774215977124874765378571527664863094392096980654690445501618637572485503024215909215490257638502403329276246871271698663609561904860531812234807979266279742210142194692585380835201054269556492327797060869948977848872519870418527460384555863812974773371439383566940040348057842558161356338104046668811469238912655773150366650633628772295405078936365077850317444932943995696980564177584908078200303041769167257094218101849519829151256906597400662332472098384865619978600394395707083885177552848828459568575494616361449853849252727191737714404581089728866496626721279934618662061654920621311468053638353037390413256698995923396054219266692489029597315001283290753679080765414039450523371917176822666064328840070508902944171729676526411259894882216986602833071636475313540057914931209188065491300119579679839952084364059673665820328636435500898534548976919551888423225835500677013008937941091329232344961181000457258924637727898748846554675093307513683000691236542099294314925575618428734493390333026484510248857208446094937930466435279085130178951140840225817156164300459309693110276474408048800358860661306282748706609896870383778795746653181083309573725052285894488407037214121368524911218554044108368941100811217818488997178823651639703062635551084474425115929347838359740118419878131015965227037308127829136028557858299689573873721937648570205816775736913231491896392481343344592059786943980634093108573528370218555008474938490625327819937375787044757760540680768156634520516314402819119206603769473152369859787535972858195437441508789594177636005036146456390764995091423272356976534673965351308820987557742896293687148024077070435821180538566712385096171581619521477869180678665940754744671784546613987167338299009373115609989149050903138951289751006041256168519927542671132906003825562310232902975183994147971472302992016466115932050575366792560180258743513853640095242082715138782527692589323496522251732614019378576807957016678371303385070657780719352127370993196926162748913087578828661787203388949016113833233708005238883187142849189464212460482776310872144426967226002569094607105952063891944765590107670214888995289588065924112858358228414472232769981479768451000972795762834729881010821780805290306793864675577173018112084658763517177668430596383115822164130290634937118936207845507781725753623451054480375141369337861632958033495022581322969178018720520851297146604153759336247212137257350963686719171839739790340333177177329372989235124705248452862852735186574347185042063017852129681567006066273220327521378431096387684932389881751789763356745624655433634397998907994336125573996788614086121905952206899940206037705634014804896432379247794191414814028556130882031663063059814812461046642024891372681583695675596013351636957466537879779967759444221208793866318761611825725058256594451012565015360862385241780417416202021246345005699381954840698896373009490460537942241542653065357230843298201145445142972565227067900517984157951711504595125959497052503753094496743464092762239400481470969561178400199552133925230996585748913219633575670353153266357189343350256971504613156211040275265850053480980890568302744702612257970939305790527124390033377516524949614876334951978832023538342222031886798728504661069374922753763207421637108876804283197311052066100640887788352119650054783207492939488013712315382704186244383528592158201554280071811819012339239347641418733482364558573223923541121418908703948026756360556608533105035938210880676238451468321447754923796456214955698557958154822224210433434672261872903807207219525981897296496881358060501505173761102271914879261902239252198908581601157731831666462941510824461488110460800914811068589728749283547671522870834412660071857308554873430056181042136929771185850903039924913595689803593608988224983911503022885414029121087898367690674890991714783822918504375151913782079732694981270007111571632752459602668917875734547160293046403628538873283613996653291982064045421071185431935166670480427617495889559299081825126256374537772659444389688969800324680840702384795447476796818435540568565899579397966140053457786520447934345394442987846930915178229971704603990110301643082947897527564900018821642027088729785808130863617793030369604715926091177601985207003947978236078077872106316831929754746121027082065786811387565099587403320994751112476744107460715657366515838528983262720762217977243275312213583877863983223303550180792179436169573723834003806290640182544427365065873248867794148587548350971188750423302414946372028863476057267818826333649538502968737726791116520529433049000654700634539934206276007323360590344563742467525591351545250452494705897895812486481565823981801817076061750951117146236133718438702400360120478438484111252358194624053782603496444891484519007651569197383173949154858186239352063195534394170044109587220766810098285002718219564447678279141721252404852491945848030070892231930636214847363893519873840236417515655714620965254922306247870438361842941114539892900447255541386775585667019784965748002620212128942367982857245423362807069403208663367437524312987997765616008490562603398204154684662502132009658377356128701948400904371540532392102665313427347081169624784368587331591709186727114576116598710853051110466527644601391732050566351700382381493815762788861156557265275292176681253159351852224833044686144136306190560598844338702676221774975044089575951509201909638813426195440001980635132490386315219756704089880457576335093795323702250169313584068273125415233322406083379200441710224238985214566197970928880426366168525352807970969350855736882388950924917919160200444133348953122443966159507859015888206603663680658125819366107384346352961007796063059345715963052186226405037204110527716574157479902506131275735628569653294219689396440750274178871430703310129973889530160596693526555448650901432757880740306057834929739309985598684751195568002414643751563720069377714901084111495889689801905329433350186762034477773610664946670350267660647848683524466771810415538390685071926071944997026061203622674225247514570871950372629959156842865963690766296121196994594536657817141192582042350094599529146392595025980743417091429712404930332295797169345323523174897740936706103456575705292307145508493104116633339701357400440000462434363896867860680381208915175902537317791944294579505442451706024497341591583919830094702571011334963342071483813558264617483719778978123360376283617776372027037586052809361807652737521024650933730582991362995596932843666233462808156483481785567432879849114750607265789443238936916874845240033005185739708503728296352569805872418923336395336566917726998964230900405307423848986138273563380053050719392700687358139064770149972527787711630527075239735553914891949469038162324265827008697816083603117227893595509561205200329866919715142675414475691110332275024357515915443088365962551716907059282324906854658697633636277418204980294157411657481072093280437683153375580798160357282022611946412446368043272631461473718256451012682142325133902377946321187004360089226650816921474949984477587271565140612364370747219664159266166998634787252878989333607332265510255710265511870290304781731181988610326340917694833807846823827224679218699675313378122074832591518163986859860820116339756134005026284787893999674866116012815725452110130643793544670441428330126465627637691153491374912090667957907560044296333085708847952071646228699765617914400716139162350441856867567989439181032269964807387705065820005030779749568092843516864932676950289143164885534810595428249610529945677637021903200795795193857580154690722610134249262194807635331140480537935228537796233016976971108001632039442316857779941390586623431790078807096244755027519421469339226177922545043405740739331546941018248764519078182250130157224560047914616059543356052663054879919994722462335053532413669797996745893083203588399533608280507661973112274472819563412907667889771134225454189034707888148207760319332421230756602062909231978715129483807755504634662513839476880308189590537824755345274217326735447435016718157526624715277637815320212849090237290518993341347141388640134084920518113191658111859305184070642853788620605037461806855154046927755896813711189705406078045734102138714618693608450497843393509929916545128598039486275070749005493582254684855893172675440903268191421887453084916464268341396510211819984649574108327654064168617398777844343483254364051560772552404989408117305161269732411276728350058595796220897441926252517590021796610997300738937538090444804204425249627349728663735158690139353876122929056564730636375170287223897720556040748860224820351014541186999351800295792306708485015071200327206707553091609822349146851521114309081404621286590863104922358676228768876051481898061154048686032224893990439168279023557217760057022204756640581966202196735733178322028102309142720079335201273117747796557162931018463880103633090605402092013987756281511090178891430886372831180550149337257332854354984692708261413941848702944977043331829589395756351207867685884658618931042291719707265478265830724649648917515996840581144555583534614580410584904370644818784152766642690124043186148944275809135004856894215955562807904224449087485750052358704058330269137726179964724359242512308201614918500078079637908575859301888300964625905323837833171386874100033115788678991153904178110419881064900197477932894610419924107010383505764379900979010828353571328133266970500544251707324671826055122696724829444979543205292172393176726332398775730019047298913458936243376314747253035377057031171361549055608049562987734048744373985578288720356596984036682356121842284175335053369178323316273650215270493538506499582892124506231860743326875297904435494354558279750635215893064407215791055692400098694983341392350810654702092412456995505738310930766508887561262037475997310953127531301445242354614484607261144934705389509207004538770335899064638833549389576951235979265139079195827498002898333510844756844598093976847458865336008343380019040701802458718996939168315116144051296882005197495386982619367355645659323091712565503259849203139956812682689494869166221716203829156500794225239436305092989547517425158774098356016742771833139919046541723527656810784968490432495715500345842806292226661613369910497176427984853960455869914457858018301387051657015165818574585988366749851816283224040595711821206745872789371746362526540971233997707153020509147318459337296467179917852542691211864894346369185186364495417397396473885090308599207049526769391928224258497523307883958694361476051430747179273236500627011230157215618287037339503232501927612827379722558295744745688803098939969704390324843875843135425507017550705792294809552293714516924339802204014996538905242774176215459608378228278898454863982636918606833967086506076344244669178723656877224793493265386420950101746314047868420789406571511068234567997520729657082121123445643498800463639178244676708214585749557287203968623914320473039270641142967744784130073886833137276939915439337249123177661580853132512098373869943447122743297686713352390030120982911103853603417903023431649358699374674703587618731213636732170525815077633191673789417454454194508721225631160208293357992706652445202895686259352973997219059855006005507438796837761367946377744725242804712933482712810200414128090841407665628612263981528815536607837671125955522273757993236193129731176590008307574785871664593439358888469318020904330031316520072219384911024407382294451760225289072907112124800440043238567707752485869953675397960409254788981636505192048030622362053211441884324170127370508488811460604012941898422382284981018639882564880513742866488087544061648751315601864995544683144802098950100456388998197686574639039202056456858275136667899267834191141764888112577170869259534245385025853066984630289946764835312536062805098465176824920715327950168956272896175524024256130511146642787833783215334627893369434306448923547142010312566996722634948538503993231254226452124950431602937970195984932460350636233342789905072489665802274714138691593174019231207255747690267165497072533763469510120257400786877875663087512878784659736319118765181090215245433423551008544748850656947574590864446437861696040135773552164549398754291085480106200794568425692152516836528450988964685675340613218079250450126354545218688543656998786724821133727407152853958002291855291103271254103853401684343422311787354406709334682631128584524689717198352033800699786773049489833334559188146221245192100638803354178605226747860776665300335464989045545267273583817220231821418849275996288279485115101703903487571981362238340647321163890165637254112766240300708164124058765048888188957220796427357293984335099104833032203161969956255473164793314798864395384392999989902639545850687444150175362715042315651541524545504619537051012677462300559709770695976968375902869020560564528039005678255606443060615157615416596098703303401028511337627315772073881810577683647021328272647694289132664943447733946335763172955128376488326082432840649781123063529854069688400068491318119397791925139519216476664860274653461159881495853687833841060941793478784147336506475301841767918775733216449215486910799183608209352396332075588419772428412117125545591862567835938259617407884567253930305801172287250446920382106018773606397936896561553094272514650115180509848490623865818913009725754644720396558624488202135927070145271309598721062114842297462356748537674060178760305645684931711508944660430525803426705624888941778754871395514475814846403438343396945343679128098520008499523227208793114842036505796823021148409532258691243016412266947197475995940457445906180587771685540706745963293182162451010080305116638893614788422710444667211870046874812320978789342102996053624438093867456912523059262908629863278291813425834895250005616281137259322649438847725321039163014281169212977045161934681288628772272990762786324430516583492550077230395300583262891846950544017568196674035777315544563852350476931736686323228955282113963680472578373842595458413318325940119413618641586274344017139985289016505064238816310255632448682842995005006428444000616144578264275319582091022482675192636929633285608395333885981350868715623418294434053858562005392468702696159987310052561606204686911437257778668376899842427153293912517234054704825998330671497902561449262860630679241246368072208188348254110249067500481051835802790625920874808837002938561005074529194320356305827957946823149447642939704748317402319317851056421391583576030920953563137846390359824216781741996864525219822159279135105936841704877880050211468672209808048346660828673623283133920777624893131890600804884063737303870939635208102526688386813859417392905331317146427777427566101469682038846066518025169037010103842122311260751826429781153697219412277594965570189714203440852117776777385763410031078461684491154261969864154337905682682670267230762003602964662734532735381020133141422118072383573233610338756029630294152363419274926738336930265346359708791464481886037191124116920896403941896008427402984146699779032163172469634637412819649311985284662501833937486935093215796314858952927428584423683214493280755618289421746684072934079551870208360771143683597592629687274529355627859936501166755830894953819816705619428141197851549052566552619801437342259533159793575158371568623950774139411331049645700759274905769700145933407582786989220526817047511031509060304782946381156706710363344025642079806255239983433430092838218485225281007709644391069581448319497389712112926670510762431765455768171621403906305668065645725909295880476193437008445029467779673501557467471186903467040811947053521939924833886976640055647024524354992033837941987898580755185306736601999236423955900609439416733874240108627790068425495853741191012883854375203481056919063312570010206683094818183352253937836399704179151052912340954116974308869783400265479996329042547335977536170662326809365750179959843106087515290813477195369421628164666308868655792635615272645213231524064305937846460544536608809521519683064121497800513969706447137147398931227820614879907593894362385354008686262612163772195448346004790551552827449692868877824753740583633165909748723279121589746219732215540992679555935216195904561748633329296491557198204078808252201107428970401488693356898901335544462654480466096265963346677847098398401946367901021100551495823169921319842854199784265526852356992152486687479148972472157860210403516848191647034388968801949193157103885769858696854023742839927195574673197187979870552880215299321020698246635729036859839702075152676829229952747311251859807211781708859623113017335829625133853549505633700375375771865116459243935965179500944687296418401312018990274883193981776631680068520128850897816975424940326145055043588569558812991274305023571865518511792802300189884360071009018775186236299836021466793891997465314753156731222445955911874912315568773480589007779066139531426950479952602163843898373796716957934251145854038373119081793259619364018432967991132015317643855424500476518697290416640805214520874947020235282090943082968192412690054933939756769263586170336709857934423758055291850608140148044666489267145159741508601739714267394263714775617170221776481709402105363110430552395023088337123142774684180414944085228345462201563209449359070759496302988684789160761753408469691180462008472767284665117186178274565090884611864927291770181491639045546660445315570436166580153766734376376084919335130138314472060348522238298298625549514527352147231697836481139341255525812555353065728037409417759891587584778669446946996422002476141766933955176179306869888580285125609705176040039855307799284624072635419934767015152112891058744816379426641499081574822998258188429951602782805735248068959385328263464050324003474650981159681057217860212537503369778657747046097204084889056716473795389895049706125564219281395800801601102875599547151465155498027042003712422790121497866947994418874416953469996260623729885116942564183264384512737694948084247853632134371983637846041651039584739035403022417967397173154837919920465157919083932079930189344706925217216482331791386190940383399697231825895644271733858795903114587544133452032598917961005950826352641196981638283961599626425427800466561050130800475908848891576662360044017631809552739151085463428281623157812857853888163891127936694764909768946895834439845844155340391222992573647393127456817729733341131549788641454708744074393806677592237578986592148800812312323842700821598423774614831298929354270042234408348339677714277483862057311885376049291890102146107415475507805289512150201194328296583895518713933419700393351928439901878481338696123944856072404208278341311058103170303455141088191335817017202435500992223602195555795313571637897945808740942990576051598636759702355307664794868550741149509328321044547268204021737122729084438396318580094085317295016432526675608389828020087595403506928892682300693337893950297374505621699645834272776894744945833060412157304002559722305546884114276067289048755036848859087521152467628107003348990198038693670456248147021326609740014504463555078329589963185157782291728512134951032108739241408972538269853942928484219933683472500373514777732620825202144506792042903978886005965458191440113072600648914399194648707415541400865209830060325787152498356055855837292506623512945067355076201183381306946613150553844312363363577593045484001054887270649878040092247387145626062912176780625168820078817009176625570144720128878980741717052347057582918366989506768277863598909258164365026018759635364919700991491053627927595321083065347631104025928034983954369338097715286963478021954514591141089800820426320949574803854674696341235757595421536689335343812411468918587550382209313481542170754901765428386406906333162528620289623284082264817915977821375156940303545603967050534976071107623079041257005911478367547730505774350137677667380070123665932204247659781642350560221831839376016479633876621442342350630985787344243273494760026908102163752183987641943689234809258674648402996290614955091135446370303429365366253884162658170550917257877673421221091301673057191257856375933898681313261699160918917931036178936680703969948429201493713002233146754634815419364183445067621725161618402159158600695739597229554191332856778496222866261842050140388073076606823518457845603524614491990017254958669364829595155432897736447684830514221213399384699753922625230672373495190431806513683705311010885083913066106856268286134252775305060180884175625568643018831661888267706250413422717942940783716310401739806278369546900540702773558538078392955646364832063199882388742874526900068429388110924466361221359012122206025119713951488850490184068639186025111747444740619849080804966460078069949778887712566730540703280554851878976336174934964272685173351483918066473261358661541445768506081773427463533633134803037868590520985286119047583270510427128105662907271198043148225526542319514925235423055038047216888516146084548431310859979484365476055585809453593711861255660279543329669372228859506391397799662975832754968365714285444699068567698022667048887455993844694368947527187747443595473646778300151316819535943057020756238021611985530496717689097713048997744428402861956311693295231565102841274673152479490385326998708156823459715460964050730511310248065452838913068757825013418954515200469136822867048191943623053389995778808653882710984177721071460947660191860727326339344845953074940584492559327944714750038029659684351207471439643083630398885051134660780539679948227362564437561109191685725965284444362676867053754309616100049811209288239150335476355787480437704707255323676303738799576450649322967910027064346630985933445773593863476316536406207589429682541084587965526856033532497234440828246508253912248849555413271058486040874238434921155418395635633878853343829163074528151303756621865496525884611594350915235312366688165236657378951446026264523135120986947231975154517127696763322354267368530527233950564917700018215843623330121892726567080735521420596372072649459179297708355266497036065480646890640884687054009461596062785646498512702836049905820995737709997967673634279445014722602512929484295801236934622183344867804195237458836718750298709143431443456310938573698165224282099959560768934090975960243217039107369870939519072876266992208259852816412091101300006809260127289564814542913135343160768325717182787436472755786489580001819581104233110233179962105169388257364027549231156122520405008617864707958384011209015067212608323740308654528247856034384092135088725602289462275775575149227882924294785248204913019699765631718827381115596409811341738885293638535705206446742650264579914615828278111456866903668428561567357459607922770991941935697851251335670372531023476606937660029831236077948888225027860585373542392183206658363265843728169629676915424242892742432821481725583624388917502360659926238521854219982875138997165911877632363585230223095453154347564382700118094723342821186806818153938454339482304622637617248766281115614939601453225592647147013410366417043934409286801255380044870887455266749837596518774436362557825583345899187206553664294790348303413260114213880904401538268200005235413256509910167236569872208665095847183301764228288272988797512127229625238119432834537381751376900177717044854695678428628031052556263136363623322636086639830101167901756757814413961734945725442834220325682374768413624300957220876795212731800041516279266568104671479956850063290923508388581393150768157653455559712435901244682430669006031513681424135380212285774643779637386163842760798881957173200439971605694675131540199617438411890680191026429333094414157092567996590105763864271875659694949485331675447502099184332050016434678654033589071421921786660999879910696170318359734572821113247688494580336157531538413420146870205818889611116603514257921362294610025724528248232966891388337277077493870861879968988225794066122670342508624184859855151745039550412460696503876906454697743366851910197263565199891484175255180018081517699633076736297792779299734679124349888088486101106519085509704084502763335181668593882197556858122534549998678227001828171125163356371152049652812570427875361306643107199502746887836139548588660343367874037844873940967523169195352708730792565271741201542859907101150575687680756920720845669448525180211631971484428086885618251840551150202343302332679023303815216840645483410603363674329326237487505793404720883256727393398173345285090378531416312317513213953651715404475459697015690164010583679211033604081460825967624122795076605387660981172029950596934814925333430306369049600412512243056847488771810590037626618850383101384737910019146922409267773096895154440965658272443855332213566009629459477300712789467403600678377850680680991421495385057819878751588682848813510088964787131242778485295493776327488792335207935260351792759812139258467765741302227736268126439599686551479313683969604733444073796559452429296651799412200029540487793772064837630842731802124957641579996895059940118195320386608292575829164316653199698590196117756518282133992375727876904260075547226499407104481414334953344819088083861691734932471749100695170549477100207892135890678598096264274039906651616575597518176754406753955887553545278313472072617741236206747416477784050099540359510735491355590627818596917809116407392658751087159800905738639118379396953752037671813985858971196013125352882669147413434497990355349841575607816381499617569893526580264770859005673435680967460151952043034821050892328415568321890435886120391252917157501968486270567751069803486850366395368291173388739577436346477310057043842278742186923567281716934823451336488829220804735293509086015693215017750664943787410054444079722471675285641836767039566244159852496356748721029577109289536894892948076052961977047717416718107090468177688859944090846403569798349811170570846826181805006380555228991721789065503265415510128276919702842982611235473731922972755884006165776056376041565901328591179415017417683859312776879803023913681179996686055406207269593913331490472748045415821153626712938797920794075755944294625568672105739325925280544677192345684428268883550896425639765414326653006213590795928256742499477269356862435850085155046978858477507751944248520912794264592057180555811825605262032333318642826334296640221392636776259688103058663252525953011380111349036747800149735556647019350768119297415673909460339878202501443011865188667243933261535972468256911753883834831637150854278317631249056848418656403423511852425596023250783664554789484545087086827280068120428371837090423323128765813215184334164293648960267591846065654868326484513356218170615313527505129954721070154344597151349002639587725268521002848226574444109487099127270812432854211333546035504216541037648916198203317937502318824555899691981875203120167758862135603725956714847705340122178931161315686803429432898611020259051657180383296321692337443872350642529628596554805190434716437058936610211132148156016237950545175756773900832162608528011252783523046007523616423939341959183446264155421334248605931582046582313990344318151369787682700672772103841875740022360389845584988687555889851555058498363532897705350995286140523271401520025564060629908474213268662796158125650393731223548605327834518060888896586000643897735809120432699213742078134646882075064589402078574804156798368123938880636089026117150217984836369767689860969078079224835855473942322159463196343456003537937366315215921100680763712310340021813346597608041360710216109573507056658725244765980128388806633965023861160765881800716689531357484913320555124101058234041413328425158825507245088288458770448791706047089470794623480008376580695936903034522523831092162064511572642026210104344306359651224705563490126987180248892895732176184667843100089813479584856679005075047679048383317434293232030195551227768332810494374382931079488429440577612042611370691415810435337580504705053415311380679337518207861896103912396362520257527342427005012670627933016307588349889093605173080536230698194985861810552997182535125398646840559810218439275405711756374186213944417636953158567343315605620945728962520723725136839701645618493138993509955014147371393179881243461458653472096479919540991862119621686527909103206949768144426855354257775789454398002095083548011346744284043225628644205759491763963494311486372725089026861387719782550546536409644000767146203029052680868339254027520785503601465371393658377690353462303421850981020310999756544696161945982352190531139485435128130953240728792873775768185010967987801110438002118231980093906528382065418234822193327808446017242140490510989759967646151319092090215047668741776529631753223144605826555118343996922159174603479044929551772539879635645667765708007713755541807447140467047521314818420903292093488216082197768568738442950119208160705721179378354341798738575499943071602993715207827526235094425643214598389565866209933955092162619026757745458940419345469409139575998978380937708563241223917420502392130733672754968647197930869223289157525612212224804694351305533908173981474266260369402348714402791083292452245945166992291894071475034967955378326372613661101638311788920643884644266335273542066855762704424326863486836059820332251589599929192247441782369589927120996883300417934230330876401030404313470094553933554129604410418483416305137906858245311477069489776200189571932216992661705727322939083827449181642636745667523178067218501360624162302205200248918066046817905046455879005118782813251585193469387967483446044747924731911895786605095016588892851724020474267120547541858885599617492735118922932065719407655887943751845415703347283683246190837176755492794988313910445517714589957187773361913189779593234807382444414832518249538998716597533561720445635678299548227938131681806066541665954187052260008803604758037734880737709140554692382966343324096268518308559689430673278441866416950424910167296387295989565097198203166886024678590364628362169468848011988445686688975711302632292017305279339048176132709031366497643806766974980661478335003144191097768265911104550523557069135974670703743525016630158871952339762837899863227699745956471505520114156351121210340849493421191560169676113931320542581520487095619658669047377023720538683454982127055762107847835094146591831016351807693063863809359324466922231025214181897274883150613296438495376601044476929058140018146625373084252983635276830087884382697434580350987119153089712635611048383264919493936830981834455195486280578468846214769964449421329774025000192772217483398591205531619444692873697313952523047145122838569610768923789051187888390050442314182093911825274165312101020390872594742673978597277897777291168802809626028836670795253589928807304660458807284769485230103698689064315248672682494608023530189155532021096109903121719341999670415937431860352468787795351178766059556095422863057072009201466887316947250941106558683725409477575829291012109589803703593145569682730908863140290198155768448904532658024725645188787130775282105688644935425418991625434395680637403498284178117969813139396468658459958855162982420776176516787996073454715313964822966610867890679472388335847082705024804065226866368694187739732906154365504603535871640281411781379023154152854074955700817992315497466870194156978789473881644333145026921958952564545355053328847284591386929286389925656444286648730836204988822238260003008946620403241392322481982917542377600390771504281748302602281536603483693384370180354330707895913200465420568338958715051256725640881884409910485204352047371298734883907387075905766637974819289124491700810418056692580755871012763298910305437402292870842258271508614380041525672655358194779762882661311129426363865823098786446913320368253793656704082627181304733214346446632148555082547595160206685941094629665854681014289647875692228381029879159811762522955184647915224307495109035030087558045813685554006207528740839994444670197661919380094633082066896684873379061679149624577744591819309377360985274907849790211032944925226714187882627822123819772620501069552127638647445720085428125790851273080094360382036055349479069389453567340667317211843233803014724788974415934756604039422534192411479651413452138643322077039716654706508417519295779460963687579036021888159663493221631754891455864621236856614422530569021005976130365692969189974736270829809097871366051057687506612563253035203668646685006208021970842050091361468625766902653648595733900880949345841746801880895228248404317312058984684995500794601646317304377676877048934943375883167831991596411585956619849569315857245017150406277526954806396134351620680849182173064354489807989285348911028497961595262838713596368378296032540001919956235696063635795649295536865215981287020164345588795309483284894291456905146981816925270183993570774156239636276504605108163748922965483776745587278452925232185351586569595548593715761166923905758489764584825801890422558631194258450724825688236715698012423338208731456606528169782532827018437377483976811076815615412921336740077636514874593029914036992664533179044680385283310067107057599926938088048597671171447471650270370186189453127765916802070036781248015489694664271188604057626553258483321828200643978574657558741409911263499744982569648422000491700960209191129014178705905007433512898226601350425869479897264950384423162561385420098912332272816427960529289362175370253010913036421331285769891229162157336814540668643384328395242262196850649734877497063892674957416657014636290901127073987087771827798219389595057975267302263262645251092481721416787854587434165340271301806978386195707624206691645613906916399525564570881829578080472654810846763502165026388042965540096547253012746713938876692816561896562623443007024393824968858387282955479579751953452059942377872105035101692955891769674049208468332334725983920184719173146339115788982776327972556160263243533335812308173145933689281464270792682467490119485020530350467969041739263725362001199264032088837475086467141745396999630712691030163445368387943511752110673799831951547517091712495573297735015292175156297394368708238344238932695922409407077895772824238496371341632167225995969607336681922075285249093242043547361880325985379718137781627922084528966546768309255669225510512028346495229201715101918055324221221713398454682828441943859158338099184635200965216592338606482195296420001737236051647681283526471141002536440609576102803850012515540478669513528290500892675435589121145470766000353986191668804973751707560496065360041548741039725028369412444308425447354145328738327331648969111839300045106756506027902780693834256927820337176257026270748282863217894644001681791741003148115350020883387481049410626364457698089854353645577766270619660378512990745004284575904447436134234380357332497916010014911279005495809876612999756114554240455915539520903337437107731974301448131195184445901802522128949691813290676817226292853184617378667084451575277032340549963780058487136015485138514012555712384494404879895550569965235085207994949739939855641342507095627347134494481616418018862499988120288886970898679931985557279826912830483447093669992529808536727632570000479033019923079093091566097422853471009559111067082500484939217249630650161917337588280606761001966329164675560152441045367753950264343054460072371694403613558422210729681734647052491073696254638187595904887431466520377026744323268294874257113988454002383518585958083327172161061267372797084186743082755190153147624925304506543787870675077715976943485541440734171123536688898440805822461891097876764202342401043597526156107897203878037199607730785670194824352795940590630468027625835584274944150024732113685829809557639924706018356150753945166952220485146393021008741620501843163908534010894874037259328251830365321460655701695560987112853369403334962530644591239361615306785367769833650336891532099744518057772832078589395351141337967136351072500636368148864077613246517379414682628511270602272709149856829436245224028889626630889771480436137394729297405955701480646630625265064830544549373629211558009434503127778410334480955010266568134303635810822210831751037879321411625891673876909171979413315258767988905323712428293514283084267953672832733877167508152892886473238339184176605624136398288235727629352145401258256043345468417720127986322658877816154542964235262404022322131953671373584573771809083885795367964880306278729297156371231943629190114394165346298324212625882159680290257712867957721776733412961290838852712729262294596101263656468438698710426256961302605406893333870017986078780481842527332963429653284987164899207614730473983970573438864534312665082640209334012485921242687411013986697163752084314340455512841224263119870935563570144294702117414558991936827863082313995330204539598225055143843369704967720750245096346274868184505703956983171260127480289388416823643503867235887804183007953447239117331789667858321528696900310997046281158436885776269881997687239605968405810322704879556612582016158190902007038040680283649862845117278712882723681763671575601486379280144945404529110818555601058100975666205353705845112030359337906254224916476332698065845553838300666948928440346042556566260022518732856724800159853350377715481135604868640307247360777577620565764988130201378396606255741366103702805286193942408090014234106657829994587933130674929960880701291994623589636389402743767132977343631750790750471535779599973361164786587490797189855913380107170276490761568591204515498157026094439592440303891024637791138777962891935297685999578274496719862194913205929017428368347594965165378985565773846897316192326623007846327094414300297670425149177644395531439908152914132281587196246092606813061066618885465560791485280432713245861697309107280696176805151460324732605457475416423624588565047918209054186642653021422160787706709118162471438999912492200341331678741929113097364862197915437916117929973007102855526147460658111473923741369884511747104868512664771739132007929863900925358275507734076270931630712138197929747403545252127762369660838377406836612660204738799032023426890157342933833843892553122362036793442645803799008956531316652747117699997439655138561049213167505016089778453301152921412641413759577689160558999720600380108160114384401018986896679243175613746922342970494626167756186353090301699193149582386384166566261980881272330098416219347170743170127097739193036085317663078697184838104927107612687707063791427343655389288518986313522916946783062233217730213210855300651837187889458729225972772117864154653269920127994100927960457360755418691223523067522778278230704931609525790826036492551847933452594549973047824796047849350577767100216424703135215050699427742367007749006720041762241860327097053805892176647623295079526635623768485243515949123517004391950291856314903499465418550445117220372812910589896080674724144678909173412112819483253683839524583983825198029281690713784930956997630696511612406071060350885238430845253687989367331803130028314546052159349606072153614953630912772764985735375617221454770281849496550556794906062396085734985358736583940317030396280981631964666751840724625353236814843464743216184932981079713472729284015806262298344426075959709959631522251744985797838991709903550922773588050880882475050934918415014570566819675917264275703435032079097993364514518430754423770363441398082654940166358968660369736001785503987022238366907717208320278697171598385238268092582661408958149147670720994701336466551552448178158138854004715135787896367568901322765131517326442123891584166986756129862229186154354910897017324164646954530980210833656887112229177676777076377616888358678863272793861810255840778051528350659484757171517376851807717862820623402310727807591566523640241791183527052058872013296192433473406220247503323591914554297086916646235419684089142839553320836117849317433488100572440279619952794747912138194866688271207608114446908478304792064340750462853464961505750693513441351162604725980127482423601920875071118072486944850362121954632447668981291318380636195685067343827820889259852965857845746067888303435098060181255127037674901304180520349703681362965449097900478058548125069729722559946741451171093403765069648925498745578599213529703210126599431461967065359018063380820004568602691782074148014341659462277107213681306822555485990364851507212710966828302641267079137390563352495758813019444289744774326589727436894662001195535454502085024919200019500299248640949439723953216971203083831394702054338377057633750163562423175062187764860746036345062817941801170067856149248134942093768373919387966467109708884368964699145475664649792366531647022704769254913002839287340754926829189719261901034253677032766568610150004638278939017383168456682954186040585279682960078491936477054849243729344875507283618859926778998526923136379454550870241290822273401215391430453964708777389300316407893065427432295135516796890291223407950348242025911024823299162365825789932145297630779823337200203786914166819516137370217925714564588097887003918462194535414196092983903032690094232349606728566503833901350007987333185090798744520887069972347329951036956070030430359945767483813488073211760242542050004728294254515626775807129364832414603966189494737166698765641857886933542848320472052329558864065449914656068239773558831978763357811691671661320335838118782073539772720045069310623532717838577233818920561760121617695145738978458395762891598787772812115076779624669703257002910239694462959672641171631806341771401507293372358423469934740609623896636839304781940149883473195073020818742846578004036849478105942853131189036467444357181948747442362183369157918238572516160563823398215608265634626832199707002457441008390175531188567415944749108633925191696210976198840300888553070648161433074108611919575418225994895786008046871555230727987276162865831882098252018862214144884169890587065373231846998700463972963228760975827252974369379194462515673172609685922112817289753259050776985130111412872812359442750299775226906027702272548449145003544211919881084746821738655541759539592008955778158586284383435653578875978217390320901998374603807602326117210719432174725655083663791468324714937073888503528286799141238702822826976801072551878585597709551682423417771631348790929341272255016990550887967871092984229278430421423089907790731958851992102929087398573729675322732548402775743749936152628890315879496082720513067723880891769440770339383591146671807514446172801760091638745241703341809240872445326609655773303203998920566963789310705539887678540155955196159423667241140837118534740291353143055934334411755640480082197512783334443904574404343292837551040126038719188938298215249120400939829825737080342734770917428482024948906885812237369950831359565863717849967837821161624241748231234858412635404930077779973738117661946142095590500569008187327736533765312346088615829084902365363158107283040650928532140957331758663151669331365411384398521737536540789221251022866030741634689302535449928957807860299499456318397267380339879585600635863770574917638109511095565649534126116123647043337037620842221839561793757802128584851985781974935159492090879042806425318337717607466323201760117485059578363053578686033058377995875735205443644853124517997666826040482925049242905098713573127572119532409732726545655318261615375557261370966540857473833038049945649931702585398981694918685652873686778783360357833092186882484201411409797039759705287047999343476086271123880329103164127173569379298192154364068772675112679297471643193204001552298675734202085303390093035224969045073458271625027356507189092863794619074529155917309879222518229323511985295497338212052153853279466089096198540259754180660296925026612203496671505920704319670449298777084357191997239970437158231538838987321273583986290632434575838257812292371577803073113045551174027032856990173071656275120251215619035025658727987331118136776277855562745063262410955843191946710893244500045053208077485061610174373495274380054305661727084314400545605140791591739272807307571481806867037887125184877951680660747787819456092641588717744624977195062497380819392706146507559810489199945471437083742924777425611595530457277065901118789280369901131606879621969288897845641669114527366141751816729819057432278672900549504791032562376695904710979660690215943589843024881426454441234796384458250271763162599297322536027251174904632419354709398742828492361783607959662328424774355706312616894560634651726945995596741133162804416012352508394791629581519152414411939233089101507874079018173375305862644406115760687990848439955811868911711606111096637990856385657605929068211738626087658056677428697418299103722886479315135512158796775169198967401723295646655582606745096391693329787445845711871558218070759779701222589469333578551238096191456892012284806558970404012409350301675435330906364183606710177646715513830590320782577554245024313938772042936414108549570185162132499781819748024547512305160308403942581792485119164260881849237766727089179599764793336346671869726312434304527340903240136703651945732513531175781691040469957890227519239987191196109058705243448238740768924694656245665011036671980172469891057307919016052712478256763574809345756859147517562658589224331244032715350097469832668964123995873571217342903383045055119473144159384625568815152097849325563104941255681813420854384592805545568221388252693389629732885913766142249148288466772688903399049967909758660228832085697011441571833678017700403762007739248436069376501152146600288569939405824557322774433851437063700962017528434414422063115779020582384976183963368654780346963262982280507581909270467221358887699611295938093628229694726068238980662453667612282563797740188517046637253155146401533395169930741491448051138425728978572879645902563458468036572253029496311408874181479457599720297761358045368582188122912769812666608388874708773681380314697171090429560074828449661943376889545824136765366746100096781570500444848151269871809291824158339600365520844513114452433107181834808558248028224848647722129862904966367386254311143915408050958766786478601331186611369900128277769493595122658241931312323072263776158899536092434900118426511531966019355337700603590629790605989871400258872285943255928707034880544716318314496026995323803828234033081698418148699864169034970171356300593626774150689051156107138858469333029440222282628838215765153458049084987938161182414362012063436599279652130746932118919841562543659183363413988283155315523577758193813326196328126296469960030100686565864875924124363094722626652217055559334795221793138082204707148579421663344320824652806697079177380024042827090816662827124535106271520769654305015720959593036317439439031452490076390206531227806368870248294805906600351718964560614913682781556509386080378457306672512315766296314144427556220613342135811238301456850419272840642599971250227216220488711746082877267714997390736233982252850754706929588434953105547987235688171286940456662606773482935604291693298806155200210356549866522878352842632006633191371750294391522717203063466591975696637045133766836906308410575560594143151281564862829648389610894836549060465346969239354787696243607416351698451653435328552485053468515082161148024863175479827065516846550050289162193436552265919542175783766800192855780308924395943714736154798147712535699828686437049270312924792278514650685519246597348845872381767608274319184788742827512555537064490014965645596552391698379193019188923600704563384665117418492829822609149135898169331541818316402043623706657475296671674079369513593172256609497522475101792952195987530473637196664056891936334317866035418179148306645816988145846171376333943925109060913939893880413351892397987373227255633995512270309723830592631762589413930553620239161318827694909133974720829067933089789316343931573308097463260637310445063989509054456805188749449528281246168332387599357281527579865267388566146898801895628264097647573311595291834443986271211976099549960667565781060646331599687621166374095014835078819439447805859992325040822712976462866262997897843112004007825914636927581349439790164183528843640528893807000884498492498496977810573152429234855298212668710541652727098918456520097925105587272333629547183300665254394812103440604173407795874025286576942806705447749137916337016058685249439825911608307824381009069509736050021458527469656515432263527005437064745130529022903742919468102683501920748367000533374477434891813637307034976118697370561698635996749769868391905576407377285966913572381418007570256656862204429426446797460306904498242982969777317834689856577668503286476173096196012500158831336726537128530496649086503213845650248515119540892574559413922908263985488387309016755628864157575830219716849430628421600146354908036557717454778216412986727975574387159952846044477087100337423441465592301275730118649386914840048634834500337448979691565971626368244306255533416693369561035399005183819493507330023587489474395059392904004868738316988819498758152690181069666655814314075343090036751567441475389648952934665947943674531771221347860016574004261646302355929471910338355959172058227396947556111155603623492364547335064930339680445819208373829686104946445141781728183165182490058320646684220436761829253500524781016622054363223888493982265318977475404250020651987867873759066841351503014888626989965235234537687566633256244719041592537527806470060517819805262347264463236162452847648653548354739122166596909551883023947744940689842930829356758912082763606045817483451119358730954586785855796668860997496763229113173995076705341439902875541255125334408081540782709811290277915625498241136653591491933307826291141000553152355108260204269820769476564765699122170382269160628945679053237428671404657226840093888021693771947113339301713471029408332961900774185477047134939168289843193782372551757242225986072279363713822961957969631005578801392547733266528876652766061236994724785125833569330781149010198695213820299678858429958668174870627447517953596977470342725610451602111646255756458864701291260408450405572900403724506390126629868198140222693981133840038811428639479607185049795941337914093239329629633694868976380497067315807647255324066714276310198336903610535623099782770315480995459717459477770521622878790753004419858952842050020678916308972475786890794925618699252073093037862984838091239023198161618493809456270340023642127228780613786243056894547285511778407916768688848869722649428755929058536452785464251259330171398131725137042570057811205011708621062529404955295705285312738217323234832433713113585521838700221607362805461183490113620164030815921422811201319105941821319819047315017735045765219822874119752890093761741178326300526640084220359838296049226126857893161480327407608875163194003573624258835559312702049490063362784967026838111247394411558112107650265778347247602387596411684726609671439948227641047852657142261114128487549657210308988011943697618065606799262941388280283192684308937774638941133319659405724789888215665629021989182356923781557271904231698903447164183193996197845694042150458579270424849662352596524878506256707879776163234550110718470242673485769107487202654145787529473449927087404000479549740675653254525363994786494938356009114418952678705690141541650813759309803007464823024232167746175767218898336686757266448077612682873666937174046208144798379913649197267849576263880317514734304958826515345846016059134946129513197551741927018968315763730497976692206874025991993920032833417138886845988825599213453308023761615118547545422678197137839679179894343269196998499047072216258067542606238054628502659460909841209141126369219893976379299807152894550690182228185793334544786102726068583648194039290851806592321362648087912880704048183142560457996493353006593755967352420370182212693298487863048599926977786366013167341168934978115242696223696199726455791633572076797831616331627841150305583239351950560045455836642930631429058855242631886816939550579314002950640490270526553718092464369399631401152998479231819233537988513119463378015978091311337895982524141548012880756034363699599078419357941479277962208620383277784206930362298044426544013685096174745062985796496420613410343597624988605783734199864197404459230584797054468754864857640731197563986489112065149813747179252494920795012411590295877465694259951569594360536982918090100261620135085054349304014799695905578164893628818097104851107427179800394139293107426896860150622542208073534831702203374049603729688565852876018241604359627682953090897130311615945595265768986598159231888064210629323505107560438894927431431273140842935992296237944116725174893012020313379715871061733590379796286513355787431566453835459756166010663330259192816103384216637403604187903270882666300625415911127979789314492859404258751021110104965490321023935114317316424272136118006433138520393169991066765137575762904470664114840613130049261439239435734026068702516457434686108527811512648364720256437894641995141134786040286873415399160927828487553905086533598672416370615013600621698221365942125923756950710073716327818600911650583057540919518416283631738926720477081319582338700468355009533329588568470669969847851184206785066169248691960080057960338416263057577977390418184218017569838736511932587228777092484529754428309241593281436475926848758910168717603265546855710348680137510840652011250322907896834285894442886327832110281971100484240322731075554804749634827138301915451565457720100830408977218070968811747167660339919173699046611184704952926195824782138664866853320297767311551951954661188540228092660273352943578826385681505388642019688728950801255025508161400876039201561015232910446611238165515751079859192015282600945361101201105527933691269757021005544387277111329000677402946027939919240597264335929601012048797573037310885595950249518731296204619696645035793352625725302858624911164233449746558222537560818815125671444280212263410621994733681004192216913673740087665230682964358709720864470019480093605672382848369474842311633529800197377021779601056615350942587248061963281970780618135856945529319465002107606923029529310477128458527608486886506317904801576774628019529570802157798023151398186897588763276439637504097072008041460718056850319810915361783793813372309589764644430276808530611046188535694983839405723170622176313043631323846751287326782480078043264633551075802386363712332933050039571672316487481376394387175535244982867436247078583517919992483680646471922685004183250420989466797662787631834011876488765354064865398455562323033254533236855763531366158135739895034981217435979713764767504107732071990190720253748238968558532793027385125147418912117535511716398213020374577512038668391691729244737751059714966921470735508070468126104638918517595555829978892359897064111225019010636508134892688336821573278720377949072012109792774513648515269076919191039137418949397666792655630336040445447146850157386100823055418153001483432077953516718894951803762127640515946945062180954757834336376778412196758876617906230990373253214101892574047089976175027080873149024425903964542911563635646944157685631767584026603027320491291333570962264037731108282067379515774241544086582739791107642824838566044318632441542257459606786998548823101577050360805603850707649484002845761799397707628623540533466046631959085849297270953816706635703748405219885116029497682975500889553589188819296485314994146731327767671521344346005751207267641785373477135612347408145727536204025478283193868730287120029218010304214939171873029080779912018434159380285611872884252898438595921871388121319628563804736328448862741160218973662824625682849091242967696382093611134592181293121096334656519230586591256679335754594293182897419466302349995354127549577157655902965728201608144541839673685175691029972015738765715165207747966229754158783303891348123942274783679443066834477786488720035668492296411699940618979385963753997171687016346424263151593576432892784250633568925630164603920479421600436109183875888587731765162010331994333314704205027031853858652452119577114477831575012989868642108810381548290722912044327734748160410471389961203417544491964778478818840471452234169840680515547236244803401556086050361285151360298415931836665537521675193423349015717478869627039071770130572853879942195527706916907466657012068083880023404345850835954371209447189241478905948112311571676718343562077975623204366561225750230881195665029809023558305037465014075555678995970578313292788838519157067753164178827978162856290019335827369101937650877516666139544489927960235720718555970946222554091715398555904643590708623449597170961478989604388172894636889781449720649284820908588364277485533239202336710275599255002212099654040785521263326211926236563262897053890730338736724925026704977913072697758943689141143072899984340224635046367930077332972709992836984074699343078986336851695608294097672527951863955041420778636033920536333649995997335410877454580027465581426224251010269052421162452583590968391133013615104183728006760424116198925857859694637204839518358049883697100443336839126892822771413445206962128843396249864939317979091018419196942305898603024745328156902236634193423368370961889586805719903199194378540603211358998224897446013520627550021720952888634200954417594241247219204518748224359378910179508860502132566492526072967402907144311160805776237969385936018245196976742391312948919350052003971331244039625133744164451465927204423508429353799719053648877798384772052209101737283927452366490057170140439279932808067365462470265278605653302428319824352516865057057521268325921660418863754156946764869736083428302352285441304314610211745021395288890499951257047613118819396977000717708811150224642171435569668245847836973924630833438295165357238913208355259171266691911296376916723287250518980544590168450472295564830823237225684277147919165626717342847035372783409150495369845014015662378118559213957931119328762771796801903391096349614570416149990459477676798323468255188407343054474445748410415687258471782884010413365540141796044607352455524047677157074858852891483857240439997860303267351145079873939303615778650953423862168494515745397154231242405610864248486228878230816857115698021564278256828890305245814708185151919675328272404400929477141645742036904822854719998671863548497162543858164623043932017504772362965007161716966886023265767674894378174977777456303590941677138265397025336275692122926571636300516668536464553094342601701604783017745625223094901296123885662933443629951302880853173644278225743729182548726719903210132428347809001924045445116773324707614231449285030329441030596654220761476814034945689566999418955174130777581802064461555844522761951693498971347029184894964363075720803477268418682447859917167627815117732677420574787145544897621281389423319454542960843689977922187491552163178379379813693525554692333278415121010187753761250045493395676660391212383430730754563112748515260847033002703622464129547095216082485091002146260474122446578171074985534027261218444519439891480628460549522213742679470758588777515979581418275660250866211508259266266312935567362994703274396294242505039831176381568004642456287014534537596972040570369718297548765393957311034286647466063133286474283636353720944435255600706997034834593629163584609772372524199067385692228606538520472805425690545692336259508561499519868103825765403875373185377090630051647007770644359511702577881502201993848201667077236578800632624936425844241617688305702505702447496033775598624056830854421325163766041471597136945590667908074798701429405660925937153163064842065763707580300274884985873296081017181949634685885301919294140705040640596771011856027591125962460328758911495528656398926251365272028253266286190107441125962559825463013391169700596145913007634299014925275215655240563897922419511781044011722975292005222018436297965709618344688064115972082272665592516686321458259009251982222576292212464572593527745226687041689035009184305185124303335970151892227033848235055367898547539807258857711134948339489210228443325103948053303357138425934692254294475806424581322413212487847548749448901618383968212914137357639975700549812520118764173464384066377012181155797161682474662525100385413278430658507256981312483452274998109182095232660759828850290306610130936991412622494700621578667957032376136085198494590322246584520355862498094635100604415969443482230961250124766296067600088456336928209072359192281987721227108454541911173886569906393827825988584059070582799315837855321154561823833023473242565057248708762051823880857298429356868876770414989901045654441044709308792244734820363518973545951168114555978800398100663990728231940173863373884473628635816541109041249244398230703325514179949855696517072199941866081424636714961763961810775361935982510801118485464425299817371951158790485022270952913147164651326042130592148707193033236923661489761390634902444838623190421354729874956523282977889532314892029773141699385928945814303793202528155178552109900013698460379409482472155926843980947154105809321167790428838659609245246052201435965172811641370714786825581731744095420503464443854517344039972302060255301062220389400839638069958815332447873956861259298973195072535300719067097764000511743158114550241413881262168007922486407086274945087755542475908396046372085240980495576234106294626098435180908675765091782183931662471450094343702864525818854436381479276852230622015915429006169586212205898045114273586392043722506325650537317293334301975493878934856461032708486819976362966392445265650658420783972187987104614537818317995559891568025350670402943490448923672886894501117146192783964890291914218715619939838100560923262423662984848831983990080087720522054948119716357297438310086901775701230881765822761749708143300483520649848545448217894096731575797062875697231330976595657626211457707573478989759291659584214022819313950203306386705822406561431263402325399322125222973074196375126056672616890131443460573561476142636389655329886241063746077125804022988654880607627437812010339806591602854616164933225485424820314184056388972864254814105069569463901350202338272978176738403807227168122109492908121919221887009781164118715316302172526699143185716153048922092435985389836197493322977309955411319488080997278043375422191330355258149100549649444714145077984865200406876808053509845293936684673778450524442020036763015873742249969759522625755699502972233762658317124706976038951393659065209602848023147774442325232609742124786069215344201222975857744964653613422753282299952845288426156096400341019257096820324031976846368340916032763868827761574377672293243047282035988312902084998480321942946477993716889378680611668545679537827194285957119199228169411401646852044448209705093130601075238596927544539250133575313221646654653100393673482240532185053644924855873731387357096879866212366182769855523779820261692888997564520415926602955056121505313954084256014006096703165050047452699726562732675838703985273675849336715882577108508211315138411251542208562293268081203097780491104709435707020663122480127773780694937874909607825098123483186054170686079309991614851715243503951954524937657614384859326116426925346311549053195767946064408728892945107457445471379724891950693768648009398354925262906494027145387318000788198343013555470599251270165741301775577235603015019397830451974537827455203598710617019891183313989604085267557784318669527799661207093084320981360101744775974591773491288634671999837132132966976658104955328249310303030272392508860196528170261006944576128640469317944752063953730779009130008777278145605019306021685474647445326111843878781668030597481903045005564942549312796414393311875220454647738178775910730598572573218064413070972568745456353385087475861776287037776021676878836923976212710294687960896721041541535074561071414641974902156437864165622978341018844537495411038371584897496723492683026564245474324974910692964997831600476666291461542355478249185464978151444698247785291385073646515102854908259097585253236047667106387248703996781941972033088584576474177279124016205651921405691223793515905473371380962262010392788779441742757136302615635804830763277085285294434750778915574031107793923132739930074751996847153401483790287429033897865950377499506735767028559521390781544751490221780305756106171023899314952472942089954538141661644084132335981651628010644501134984221375330094466732944109599056227889352998612778871875507275094416382187573414049855081817124575975988153824713783792490959952039344893628013782267958911605583289450693158977566632139902831817236739247594847505891320046528342053227961352014714593494745853935303428449062530097880502561609760369874643871433479903919873314030517367368481321725747745393902139533005717158997854134894821814979122801676187612639113616286227633747836848794671103571548191047367021805290480264346492788741054632664839429069197874736257872788225064069632299525347706159124866534270154332330447037358682208068532487428685326247411620633727831147027767741009235408622353991743918248581737929286800441321200270018396179636329735501885379817102343451931541264288175754570443743348291444167080113161584267495475850540715411638014847471307721256103580581842637994277160293923156680829496368600506745687916552780923638477797159785094258376302344863214886136831580612431912068125638635478272388832438334048779297501969849289524590136024221958210584980839506614765875126158654818187960469969062629026112502714426911042845158924184524155347086000211768340317578353872307025721377430150524410120874818913847729920996279059646707402408553373612213801844448367433000550227807592555995831297900640842714794852209709511922386030460707859696695212891577546696597519659049999507050518453982533021115019144998173191423691263273812792697763213515299645259390904943802747990841781268345949244910820670231973506629313256091043437133420806035823395591379238002347403171035870750894488887624785897889757581588062992282910771299669850023352331394338098314048852761361791765591486524896583788653392337104847058984069593174440747573999967468793276255579977795155273353285361621746812074547479782397948187909021878917950326669673069173155771113161835255693056365828578646693088678365573053613656603006543170438777961884787190252256364362467009549150082496902299306688330994336700979024435222025566994710128815836130882106231497082921726259439491009685265475339611673174671937751485981228034710693812138711879466310705143014456293446888928506010870046364461671020741609232726063437038008727108401312771880976527848640471523953714571363875166500287158859407306955079706715163674321758856413103262182611155604932986109609125568567631256688702994399796981425198360621342478174010369023712073259976152483941698069379995989113349936249376256718346854112035945278754176921881532608369647347911135533604614442042965380513842832575228794832504624866787234605601836797307779930979546655011829268399221038905562567115026806044025249770760545343729258447945665632247386138985665622808614683067704271133584271117034738007525296810249925321065935649277627537309858191775477389433481826831231877231142036653432247689422775202786710850188438996959537619344045255301240051678450489204573690962005222695020100954416018310908742888322193459660105679896890891320767712190495971119165113439945467962882772787259131887331055497349787360619189386002165348394071807842405051919568919611944718335757043893750734004420697161279010045835146033982622019065717758697466697397991997453992919407445594584307822071792796767759134021873250671430531492271018476827127113248674055970755538199953401371437246652766714080217330617448208507577305871283259803907815700296576993915240962407369150703389332683050337464587597224430120223028298996369572868424173782996137147302892345911036454959581868660000943993426492688135837569913476464351637644105401755605151511877099277490900408264279324508904296747360224911046832784526258147472698267742849126864568130549476778370137613869692574825715147683995471318668786964085747711025854762902120471188308855801986646044721649838415160296668106828391375085601760007219850695670551133724354942759886581932324463844029875120911115023820843553437684059908332119227213342048170876336060437615507370631072541173470912397408013281854248591924562581124192618745027612608041883008602928405445270343160904862496440939660944698241115565959902644454689586224228073824841773754470319560404817570427570554008193450516973942838942627519076362163930481560600161855604364597252515202357406945241461913997515262688753130944527372272370514381573539453557630700151148387026530467167600589162964466301128872800805501143644588195669213673279468855307831287800700128270244126943337215266488290027845408216758603768418484452440582529142096192442740122946936995016018363346802264786666523922278904681711592491696841963161466454116930505037333854191066849637484130369887055046505352419959184328698460470579237282127809381016966411052022269539220779700287862590787740875414790545270363969098002778641271020558370645479288348762139809924100427161339463264662802689871290675450396124360707624056378514139624256244000018582804959745586262561475202960014740068594822185743858960065209026961938489950684704401840981710012300373924158606010484860854679027138472448475504742397399363835685739162673722951147898027159910073458115613609056844568167600803109709041602851818230899252715278613725654657490606204381709889101630812000380547065564282019650594166860974260100100184128588353557037924977481996488186034612395018970484685059138287837176351677513786675838269233075347760575480465354084932658036454032958921970748159064737474779145222017641892072396981437549874011836920801151835541710939214128944562805696706230459014454861068773209829997894939342690465332533674701145060916546201013668653176714054568114293591141179794697337159334628774776385901050678894904185867633917279245039269507021887336602118281767524993827237817336464737297783592988913525321410005896237284777769742974739531047329490915044930307469952427256698871123620582567611739971055072347494136196901104748964064741131149420295002748805767147015218881135531685700185364078730999363683344513073044293422162801074849283206622100826562469278562858035126598151093768088881246280398665288502304261171140960256671866291323016729836937355495029706273272106926691456624084484322655160821678705702989528578094752892654935651238270644207110501765827006750334422111337271889526853586081893652825812592824636548629734867509223703051910640318960513176040633830133868157245686248695540668378390614397132698395025623260537435830396898114855237085738204386851569831177173829398005399881476723959679462096242699167969966107360515026432639535440951804478549894572571129079273948988215237417591957265284953594181923893866204596363411296892866516404679588808455402348356876049385210762533361980916933761135029672923048838477921718093626543489923328722142382727909259423694687309124111819999252891083670854578231796701358554074099868866891788444101302412338503500156583919163203547189522275887956294016325757887617022857843895882824647683191580125724132175907542145007881473527867256164461291524891800854225946156987338820069520647565207441745374728059784763160016827511806971340446615126433665707464786300836345958630255954302003176281497891321278006845266836724092873861463633045042985913799462438273846654172635815400790854952623867590659661493843388671319989530946546610510868086665880265473813918509506572542943266678375482159271886877567674201727140941024600110973456852208473353775470028810691448716336946154492447123758309629427979256444216458282806914627440633878388178026190531287471951872663072803291053794863778562263122465880584455433156857246253711696452930901773366760295338062985650802365984654681623846287139405319161386169176036749256804163462282666005048171653212196109230565191207789267831371988735625539408483135220430711653340946966225938258094066559599323104282734504791869747757016074838487859287773450487375992052299436499993677950527430789904751238868614028960404160197511510009234419014204156947830482447280221696449691820053969003827513354134667695494557206713192714062326731510473640262441136383609759654479587357943967077562169572711722736541177324011225879285019844741323963708731432882619082072713826152999898225044439833350468287879855068384089011093731317024504272084966650783189317258540619742432699406998227497826015082653840353074388442058178951597725621337457258973907470308039640865569548051760550383226182459285361496614640800354128572658870853003243527067647598214044005268648720668132098650938475334029187040492582083708798651914656742341727689703796168145056435034887274869435850079558147660748934387401662286537280424684012176877397496805250663868620035830693689996745711873653801360530352271502976662731800496106774049548712421277563164419401149357754735783608726684446130442574225837222321989839455552322369555975100519710574389267254913070679284354988163919792199867468885654430607482343627518370974631065435348249698703754853215339053231564327042587138033241753857281662554723061191086230367638526636432554194621207736863464476741717401097270105580783512973748929525180591757749318976183264957839185228491965286336580173845382185080936294906255025249341796512451708959722414701587286628291688139104893538106457715889527642109551226319743623080019984783406785575300449461677223361306085652498914142101731964711552394261556823285189342739671702006038384592144556737731982708384428000459157604413805250662026289778283441730763423844117782215057299896028493942412148041855857120134742337292458118978187966592129549300293465898446886377225732999172023816267057101643687569795765116115102694391529840629096284571076994792714942700894890511956221604047137787809232772254407182604443252506515111548574468079988892199894600113956446799689549608980283376150368626702865237657487388026705167328294931987614359051555633314907719292204980540815930862590493338944192082907305848083938789880115443951779204221303843458609971177757127793674485176779653503953315727640842591089801947166964999159353828063423170107820925453447747027029654338564302095255342607356275247454989971266038375775592701482968005373156227007930331412576709512724891909781620550601611321187976384175436159631630966957389855797800047642060166805851648248206446264608006672331868835707910608542910180283235545647235858030463159497800093872526366999539985409095247892525084620976921700526016174763151154936767749417372549410124026665122976128668263276129922171351583769244538947813690459987134620613223925425929254225011979016015944165969964157090562250879516301162709370578005651931387358834640734993024652234528861638931972047898180335218751232511912599748035260628734071231011844124465230867488161643041958841019352711721183936120084737704355457982473374044700488675258209245256735150936870397170554943486957950165881965123559619395721006375648331859514320568395392467035347410784073424783103926071310297905435190646301412561964561460046106125146154711892699107423333014854777370582964603502641551418682647730482375490267333537765199368633989997654760650554952981585581108515776372293889227357891642730536432985082332281317915827642978359124356831334572560775009540050407148391447922951994100926604989981355693155224688302846212840839755952123345933146729271140742062276223836202676479851134443461155918570945071906599918632542154822646048383559867115244768928504756602554340348429851431310459771094123736811733466464724825512304929291853355726474100052069527021527341560629132759137900954580211647500671162671229268036074105378665549452896557331602294266084507015443824305294002831733674715486076961662752595835407386628228522470198946864846473271850281659913581205246866232288451927590609936321243813804218895873028720230061800625974576538068846928027901264809838494267868059446958510441369294094831126944256906967401597495423048378372251977050730582307154129004619017103521515498510352029820758765478420961387329790559581778103663568279109546403639474531034220971455737453102930412567351133756570771372504956266458384538714230716644322902409310955016376846484595076177205545501096729354806233803366664768162721726880445330515033269840637828591085202306947421619232964349375406984210384921635092875138328145695467749923802134552903285518091191844118675953970638187174276960460667532531488734100862175469464242394940088305357679377886369116948050239388004598789385370438987430176998266997905095346295674396877885085845339463541790497560484613241377862023613547169078255897655094804030453840787022679942220676944224851976940643530661908249901722948017061504696731320865192235839634261615316933497912527050209644740331786601763962144362452863376640523926676156231321621041016245664673298523849309802668567678236626602836756487964214913035435975112698837371846341483566190451187647936322471656584690366314351985149714481082765966319070511979236417482618853963844713691083149308047512108925605837213448453640645804483649555875293883990212965759689325826308533271137177387923421603275537207392494310745080373688188982634210161988728146886237140626429338097135568627167310143684887066571613435286607614695881182823354744062417860542127211174755529953671662229462390713134572107759065144697132301438946597790432500025309138896758363234253346145085854989417174856899557448326509312491541624471033571325256934905598394887124173202522366702402935577956984074503772797244549894652134845550412802454322266613925988016317678745459710327012969586295054346699834776263525700683497942371011688034588164469884823435940344521286069101374145181449064254965407875338382609452418860481188664386494938306178003123692613120728407906919835756655234638139966577426487134480309541060738490521953743935498497589451501024528282422820090393161236782508815262705904747836235075101986178880910163700688079165987427088379676325383394328297933951397211396249564935850110173139667381629209976672702791702648519521548130123123016160965636496157908763168856049711537239769945529272530360450409860380478188098506780684519336415181700038859099456905600487661429855035241878238832100718554115002335454502674013593061014636507512835058251850423936209020347199469302219889205171953497700475197155031577372856029716744452158226609249534459899417876056454039234435517557159713493135669828650644255760910587198387891187843813059408907763609267640301921852682484053599314472477322625269858429945317508063194624666539090885061253015418391841708057219330235084819143864285433759826407948272628310996192347318513843698030909109617499969977674445098011253202915428932209851357908008289594506314630758304703635697443812212401524603275371632948567530310729626396314509554532715415319927113791725848766677740410077771429568767794329314862413368588399796818252798193297082650627092591425444851575827205040572682004817098996581745681416010577484609458299748085886816087688215799323933353335092120846277735244009817338667710010173190951014913816921344121341336897548978306114858231768928474569542450413035981371021315450620854970552758124400866380700100698433334347517068162716725916672420196845201840237086226047457172362842226254636168067575168352390375480036587044601749307532504892935524184016708334885557109104128948675498165995431229447258926075226231065353217209693414904435621846919971222426611079586269539798987778832973358519528384875986128626562486624182450911748296442486023970188331698861785320486651750176561132461607468511543940122119676204765221122834779612501303014565306864598271492593698751248753979320916979427539635981535379195720687132879102150498119949030092691093302889516178489926695764172025117231265978184538663582269577211863912924914561516554522501904883548716935711020808156809972336761233408393052159585002014659028920406446328075579127694914137020807980589562482589198477877043550518312786548188317785389743309445442325374808147604181498331581074893854141264776575396398897205818411997191233478905376199757788921706528688868474106568559373772544437898961562546273666623197865099542397336049083045362747309615767372065647473387108835794606384724868262739368432608398888380929409696118141383785447697535241860335402018831759199377470022191196986300337629956038323407113711357543128400661749141609135108137404893460442062184158538603701547095746300888993150294983722119712640732847618195921792161440833693128786621547770382300549057178104245901333476410674622107525515636025981227575014660126686345666521141753510152114018065203051765919930483811769547634654895347261320870017139946115107516042712856684212965947048502557320161155338953236513276330461794111369219000794540463465117870714907762558570858178928860215586810475885207139878254225296697529081589664858385301932022120722914114593444379535394758443283213889168077674692856902436477828506534231920235210110985884068984824343248457202026384599189545561650420076274754536391632064935452915525899176744333077851380352649980413658306992672137993501237472530538006431024728568279289031799884303111001649664193393890683945053633721344278181952921353622512042839370815287933392912327981216567900951129094780669675413261918178033815279386413253366218018108334507645639936690129643363971740305270041049409389389802931126925866723184489663973811285804968369495714262873469563329362721666811726168624012818277805080157762689981592249059138643276151717083687041090292614671046919600563842965880472172330575580666959993437096587758062768403138093154720176697862583951581251597435312764039093185994606364075030272823290095977432483176623944494074848494953954699222096922218409803641569775382635320370399673588961767598366682724610259389800365208862431439985024096556582557099154415883069219484218362781013635894215483861026664597142199309972143590570125611395778394017757117119594071347527389802713324773522583720995084817177302590838120731115181894752609296617488831091430833017506001953538952978059045871743619708764968897728223418445504297769948562335444564711550756776356544816063837638111194211539622014088807401299206995565814120681484440625021830552260211316649690933655537938661609446471385764347200182675167112941415698223839188369680104658414133829747815758575801510016692848146694062707402820468553285578543307450019726746641570109470352400479215864388460744522249355693414033609894292763404099902210888126053016101551722868797439309286611385200136563113542045872738774734785999836487714592687743262911277225014200896560004691351403423646990222075216699504538831805259673099858482543530497655920205022833998137259394394258276466733640333054982573460183902344564437094871554419515043772593232458346229690697004465504601347573485112286817490566212560034614888683077614450795056380694771156421416397934651654539165562651988755711648530837387856738505337936505702805004620507934098720023004993181706532511961791967271783770951334376389266375785790224875394072977960510509867888136324044765791020843875288629050666942417910846965157903397841228757799601505045725645096130615562262903594230947026139366441493897524489599416206454530502674019102904567642859458249377880490253154352003756424596193706052030352280922070374265249239407964234851668938833631745335153564843334066158985583627764232194538203068507725743455588208907059545322433219711539620112942487907855959069953580012485962156366490845491941185636301187310468475387331401166326800108976107492204589901767667504396751801158669714543037459136000090860068627215098253207790269520381691499706472043721121097437169880200332061686426294527900965233455462625050184140999079036255730124696264233121022903545887652179772096321368963207280277144084673177156794202708689879364338172689073015229400965721790051108922405619482478700048571336691399693858715565055080587536783632825939392608813634994531140284050093129539